:
Service,Service , (, ), LocalBroadcastManagerBroadcastReceiver Service onReceive()
Services BroadcastReceivers, , . , , .
EDIT, :
Service, stopService(), -, / Service. Service Thread HandlerThread, . / , (LocalBroadcastManager).
, ( ):
class SocketThread implements Runnable
{
static final String SOCKET_DATA_RECEIVED = "com.your.package.SOCKET_DATA_RECEIVED";
static final String SOCKET_DATA_IDENTIFIER = "com.your.package.SOCKET_DATA";
private Context context;
SocketThread(Context c) {
context = c.getApplicationContext();
}
@Override
public void run() {
Intent intent = new Intent();
intent.putExtra(SOCKET_DATA_IDENTIFIER, data);
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}
}
, MyActivity1, MyActivity2,... MyActivityN. SocketDataReceiver, SOCKET_DATA_RECEIVED, .
onReceive() intent SOCKET_DATA_IDENTIFIER.
public class MyActivity1 extends Activity
{
private SocketDataReceiver socketDataReceiver;
@Override
protected void onResume() {
super.onResume();
socketDataReceiver = new SocketDataReceiver();
LocalBroadcastManager.getInstance(this).registerReceiver(
socketDataReceiver, new IntentFilter(SocketThread.SOCKET_DATA_RECEIVED));
}
@Override
protected void onPause() {
super.onPause();
LocalBroadcastManager.getInstance(this).unregisterReceiver(socketDataReceiver);
}
private class SocketDataReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
}
}
}