繁体   English   中英

如何关闭我的应用程序的所有活动?

[英]How to close all the activities of my application?

我有一个包含多个活动的应用程序,例如:

活动1 - >活动2 - >活动3 - >活动4

我想关闭所有活动的所有活动,然后回到家里打电话。

您可以使用BroadcastReceivers实现:

  • 像这样创建一个BaseActivity

public class BaseActivity extends Activity {
    private KillReceiver mKillReceiver;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mKillReceiver = new KillReceiver();
        registerReceiver(mKillReceiver,
            IntentFilter.create("kill", "spartan!!!"));
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mKillReceiver);
    }
    private final class KillReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            finish();
        }
    }
}

  • 使您的活动扩展BaseActivity
  • 每当你想清除堆栈时:

Intent intent = new Intent("kill");
intent.setType("spartan!!!");
sendBroadcast(intent);

您可以使用以下标志清除所有以前的活动:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 

我希望它会对你有所帮助!

打开AndroidManifest.xml并找到要返回的活动并添加以下属性

android:launchMode="singleTask"

例如,HomeActivity类可能在android清单中有此功能

<activity android:name=".HomeActivity"
    android:launchMode="singleTask"/>

在任何时候,您都可以通过标准方式使用startActivity来关闭所有活动。例如

startActivity(new Intent(this, HomeActivity.class));

如果你通常将额外的东西传递给意图,那么就没有必要这样做,因为它会以之前的状态返回,甚至还有一个动画就像按下后退按钮一样。

我想关闭任何活动的所有活动

这在Android中是用户敌对的 请不要这样做。

然后回到家里的电话

我不知道这是什么意思。

如果用户按下HOME,您的活动可以而且应该保留在RAM中,以防用户返回您的应用程序。

如果通过“家庭电话”表示您的某个活动是应用程序的“主页”,并且您希望在用户按下某个按钮或选项菜单项时返回该活动,请使用以下Intent调用startActivity():

  • 标识要返回的活动
  • 标志中有FLAG_ACTIVITY_CLEAR_TOP|FLAG_ACTIVITY_SINGLE_TOP ,表示您希望将该活动转发并摆脱用户之前启动的其他活动

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM