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