Service
指定されたコンポーネントからに明示的なインテントを送信したいActivity
。BroadcastReceiver
で動的に定義しましたMainActivity.java
。
のコンポーネントを設定しない場合Intent
は、アクティビティで受け取ります。ただし、指定されたコンポーネントでは機能しません。それはなぜです?
BroadcastService.java:
public class BroadcastService extends IntentService {
@Override
public void onCreate() {
super.onCreate();
intent = new Intent();
ComponentName component = new ComponentName(
MainActivity.class.getPackage().getName(),
MainActivity.class.getName());
intent.setComponent(component);
}
@Override
protected void onHandleIntent(Intent intent) {
intent.putExtra("time", new Date().toLocaleString());
sendBroadcast(intent);
}
}
MainActivity.java:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
updateUI(intent);
}
};
}