0

2.3 では動作しません。ただし、4.0.x では動作します。なんで?

IntentService からの送信:

intent.setAction(MessagesThread.NEW_MESSAGE);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);

受信

protected void onStart() {
super.onStart();
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,new IntentFilter(NEW_MESSAGE));
}

protected void onStop() {
LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
super.onStop();
}

private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
    .......................................
            .......................................
}
};
4

2 に答える 2

0
LocalBroadcastManager.getInstance(this).sendBroadcast(newIntent(MessagesThread.NEW_MESSAGE).putExtras(intent));
于 2014-07-02T10:45:27.947 に答える
0

よくわかりませんが、問題は LocalBroadcastManager が原因である可能性があります。以下のように、LocalBroadcastManager を使用せずにブロードキャストを送信してみてください。

ブロードキャストを送信

Intent i = new Intent("ALERT_CHANGE");
i.putExtra("DATA","News");
sendBroadcast(i);

RECEIVE BROADCAST-in アクティビティ

registerReceiver(uiUpdated, new IntentFilter("ALERT_CHANGE"));


private BroadcastReceiver uiUpdated= new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) 
{
String DATA = i.getStringExtra("Data");
txt.settext(DATA);
}
};
于 2014-07-02T07:43:56.723 に答える