如何完成()其他活动(如果它们是开放的)



在我的应用程序中,我有两个活动(A和B)和一个服务。

每个activity都可以调用另一个activity来完成自己。

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()中,我检查值并完成活动,如果它为真。

你可以这样做:将意图从状态栏更改为

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()中重新注册它)

相关内容

最新更新