Soh*_*eil 5 android broadcastreceiver android-service android-activity
在我的应用程序中,我BroadcastReceiver在a的onCreate()方法中注册了a Service。
registerReceiver(receiver, newIntentFilter(myAction));
Run Code Online (Sandbox Code Playgroud)
现在我需要在BroadcastReceiver每次onReceive(Context context, Intent intent)发生时从新注册的活动开始:
Intent i = new Intent(context,MyClass.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
Run Code Online (Sandbox Code Playgroud)
“上下文”是Context已传递给我的BroadcastReceiver. 这成功地工作并启动了Activity. 这是从 a开始Activity内部 a的正确和可靠的方法吗?因为有很多是为了得到、喜欢或等。BraodcastReceiverServiceContextgetApplicationContext()getApplication()
在我的情况下,使用Context传递给我BroadcastReceiver的方法是否正确?
可以使用“startActivity()”函数从服务启动活动。
尝试这样的事情:
public void startAct() {
Intent i = new Intent();
i.setClass(this, MyActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
Run Code Online (Sandbox Code Playgroud)
并调用您的BroadcastReceiver.
android.app.Service是 的后代,android.app.Context因此您可以startActivity直接使用该方法。然而,由于您在任何活动之外启动此操作,因此您需要FLAG_ACTIVITY_NEW_TASK在意图上设置标志。
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
6325 次 |
| 最近记录: |