0
サービスで何らかのアクションが実行された後、UI(アクティビティ)を更新しようとしています。これは非常に単純な例ですが、私にとってはうまくいかないようです。私はここで何が欠けていますか?アクティビティコミュニケーションへのサービス
ExampleService:
public class ExampleService extends IntentService{
@Override
protected void onHandleIntent(Intent intent) {
notifyActivity();
}
private void notifyActivity() {
Intent broadcast = new Intent(this, ExampleActivity.class);
sendBroadcast(broadcast);
}
}
ExampleActivity:あなたは匿名の動的な受信機にそのようにブロードキャストを送信することはできません
public class ExampleActivity extends ListActivity {
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(getApplicationContext(), "received", Toast.LENGTH_SHORT).show();
}
};
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(receiver);
}
@Override
public void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter();
registerReceiver(receiver, filter);
}
}
LocalBroadcastManagerは互換パッケージで利用できますか?私がダウンロードしたv4ではそれを見つけることができません。 – karruma
インテントのアクション文字列に関しては、ルールがありますか、または「example.action.string」を置くことはできますか? – karruma
@karruma: "LocalBroadcastManagerは互換パッケージで利用できますか?" - はい。 "インテントのアクション文字列に関しては、ルールはありますか?" - LocalBroadcastManager'では、必要なものを使用します。 「実際の」ブロードキャストの場合は、文字列を一意にする必要があります。そのため、通常、アプリケーションのパッケージのプレフィックスが付きます。 – CommonsWare