在我的应用程序中,我有两个活动(A和B)和一个服务。
每个activity都可以调用另一个activity来完成自己。
Intent i = new Intent(this, ActivityB.class);
finish();
startActivity(i);
应用程序可以创建一个状态栏图标,使用
标志点击状态栏打开活动aintent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
此外,我有一个退出按钮,杀死活动和服务。
我的问题,如果我有活动B打开,用户点击状态栏图标,因为用户现在看到活动A,但如果他点击退出按钮,应用程序关闭活动A和服务,但显示地下活动B,我怎么能解决关闭活动B的问题
编辑:我用SharedPreferences值来解决,我在应用程序启动时设置为false,在退出按钮单击时设置为true。在onResume()中,我检查值并完成活动,如果它为真。
你可以这样做:将意图从状态栏更改为
Intent i = new Intent();
i.setAction("com.help.KILLME");
context.sendBroadcast(i);
,然后把它放在你想要关闭的Activity的状态栏中:
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()
中重新注册它)