Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 2.2(API 8)注销_Android - Fatal编程技术网

Android 2.2(API 8)注销

Android 2.2(API 8)注销,android,Android,我有一个将打开多个活动的应用程序 活动A->活动B->活动C 我想注销并关闭所有打开的活动。我已经阅读了许多不同的链接来描述如何做到这一点 然而,问题是意图标志仅适用于API级别11及以上。我有一个应用程序,我想成为API级别8及以上可用。我知道这可以追溯到很久以前,但是对于API级别8,实现这一点的最佳方法是什么 还是我应该放弃,把最低等级定为11级?你试过这个吗 void signOut() { Intent intent = new Intent(this, Ho

我有一个将打开多个活动的应用程序

活动A->活动B->活动C

我想注销并关闭所有打开的活动。我已经阅读了许多不同的链接来描述如何做到这一点

然而,问题是意图标志仅适用于API级别11及以上。我有一个应用程序,我想成为API级别8及以上可用。我知道这可以追溯到很久以前,但是对于API级别8,实现这一点的最佳方法是什么

还是我应该放弃,把最低等级定为11级?

你试过这个吗

   void signOut() {
        Intent intent = new Intent(this, HomeActivity.class);
        intent.putExtra("finish", true);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // To clean up all activities *not necessary*
        startActivity(intent);
        finish();
   }

从这个

Intent Intent=新的Intent(这个,LoginActivity.class); intent.setFlags(intent.FLAG\u ACTIVITY\u CLEAR\u TOP);
星触觉(意向)``

好的,您可以做一件事,获取应用程序的ProcessID,然后在ondestory()中杀死该进程。这是从这个链接

您可以使用其中一个用户告诉您的替代方案,使用startActivityForResult()和onActivityResult()即使在API级别8上也可以正常工作

为此,你需要使用

 startActivityForResult() instead of startActivty. and onActivtyResult() for you work.
你说“我想注销并关闭所有打开的活动”,Intent.FLAG\u ACTIVITY\u CLEAR\u TOP在API级别8上工作,我已经在商店中的应用程序中加入了注销功能,这样做,但如果我理解正确,有一个区别,注销转到LoginActivity,注销不会终止进程或其他东西,因为这违背了Android的概念。无论如何,当您按照上述建议执行此操作时,您甚至可以执行此操作:

  void logout() {
        Intent intent = new Intent(this, LoginActivity.class);
        intent.putExtra("finish", true);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
   }
然后在LoginActivity中,您可以在onCreate方法中的extra中搜索“finish”布尔值,并完成该活动

@Override public void onCreate(Bundle state) {
    super.onCreate(state);
    if (getIntent().getBooleanExtra("finish", false)) finish();
}

不要屈服!还有很多Android 2.3设备。使用
startActivityForResult()
onActivityResult()
的替代方案即使在API级别8上也可以正常工作。当活动关闭时,它会向所有打开的活动广播吗?它会影响性能吗?不幸的是,不,这对我不起作用。与之前相同的精确结果:/
@Override public void onCreate(Bundle state) {
    super.onCreate(state);
    if (getIntent().getBooleanExtra("finish", false)) finish();
}