Last active
March 26, 2016 05:47
-
-
Save anzfactory/1426e5879b215e94e4ac to your computer and use it in GitHub Desktop.
NSNotificationCenterのようなことをandroidでもやるために
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* NSNotificationのようなもの | |
* 通知で送る情報が詰まったオブジェクト | |
*/ | |
public class MyEventObject extends EventObject { | |
public static final String TAG = "MyEventObject"; | |
public enum EventType { | |
Hoge, | |
HogeHoge | |
} | |
private EventType mEventType; | |
public MyEventObject(Object source, EventType eventType) { | |
super(source); | |
mEventType = eventType; | |
} | |
public EventType getEventType() { | |
return mEventType; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* NSNotficationCenterのようなモノ | |
* 通知するものを受け取って、発行する | |
*/ | |
public class MyObservable extends Observable { | |
public static final String TAG = "MyObservable"; | |
private static MyObservable mInstace = null; | |
private MyObservable() { | |
super(); | |
} | |
public static MyObservable getInstace() { | |
if (mInstace == null) { | |
mInstace = new MyObservable(); | |
} | |
return mInstace; | |
} | |
/** | |
* 指定されたイベントを通知する | |
* @param eventObject | |
*/ | |
public void notice(EventObject event) { | |
setChanged(); | |
notifyObservers(event); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 受け取る方 | |
*/ | |
public class ReceiveActivity extends Activity implements Observer { | |
@Override | |
public void update(Observable observable, Object data) { | |
MyEventObject event = (MyEventObject)data; | |
switch (event.getEventType()) { | |
case EventType.Hoge: | |
// Hoge通知を受け取った時の処理 | |
return; | |
case EventType.HogeHoge: | |
// HogeHoge通知を受け取った時の処理 | |
return; | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 例:送る方 | |
*/ | |
public class SendActivity extends Activity implements OnClickListener { | |
@Override | |
public void onClick(View v) { | |
MyEventObject event = new MyEventObject(this, EventType.Hoge); | |
MyObservable.getInstace().notice(event); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment