在我的申请中,我有2项活动(A和B)和1项服务。
每个活动都可以调用另一个活动完成。
Intent i = new Intent(this, ActivityB.class);
finish();
startActivity(i);
应用程序可以创建状态栏图标,单击状态栏,使用标记
打开意图打开活动A.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
此外,我有一个退出按钮,可以杀死活动和服务。
我的问题是如果我打开活动B并且用户点击状态栏图标,因为用户现在看到活动A,但如果他点击退出按钮,应用程序关闭活动A和服务但显示地下活动B.我该如何解决关闭活动B的问题
修改
我使用SharedPreferences值解决,我在应用程序启动时将其设置为false,并在退出按钮单击时设置为true。在onResume()中,我检查值并完成活动,如果它是真的。
答案 0 :(得分:0)
您可以执行以下操作:将状态栏中的意图更改为
Intent i = new Intent();
i.setAction("com.help.KILLME");
context.sendBroadcast(i);
然后将其放入要从状态栏中关闭的活动中:
private final BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
};
//OnCreate method
//[...]
IntentFilter filter = new IntentFilter();
filter.addAction("com.help.KILLME");
registerReceiver(receiver, filter);
这将停止活动的活动(不要忘记在onPause()
中取消注册接收者并在onResume()
中重新注册)