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

Jos*_*los 10 android

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

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

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

Cri*_*ian 23

你可以通过使用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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 让您的活动扩展BaseActivity.
  • 每当你想清除堆栈时:

Intent intent = new Intent("kill");
intent.setType("spartan!!!");
sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)

  • 请不要建议人们将"无意义/非法"MIME类型用于"Intent"或"IntentFilter".动作字符串可以做得足够独特,如果您担心唯一的动作字符串不足,可以在更新版本的Android上使用`setPackage()`. (6认同)
  • 这个动作可以杀死,但是如果它使用内容可以更好:// sparta,因为它不会崩溃:-) (3认同)

try*_*ryp 5

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

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 
Run Code Online (Sandbox Code Playgroud)

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