【发布时间】:2016-05-13 09:58:13
【问题描述】:
好吧,那是我的问题。
我需要,当用户按下后底部时,删除所有打开的活动的堆栈:
@Override
public void onBackPressed(){
Intent i = new Intent(context, CrisolMainApp.class);
i.putExtra(CrisolMainApp.CERRAR_APP, true);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
关键是这适用于我的大多数手机,但昨天我尝试使用三星 Galaxy Mini(android 2.3.3)但它无法正常工作!它不会删除活动堆栈。
有人知道为什么吗?
编辑:我正在检查文档,我发现 API 11 上添加了“Intent.FLAG_ACTIVITY_CLEAR_TASK”(我的三星 Galaxy Mini 适用于 Android 2.3.3,因此 API 10)..... ..我不知道,但我想这就是问题所在。
任何人都知道我怎样才能让它在 API 小于 11 时以相同的方式工作?
我尝试添加这些标志,但它也不起作用:
@Override
public void onBackPressed(){
Intent a = new Intent(this, CrisolMainApp.class);
a.putExtra(CrisolMainApp.CERRAR_APP, true);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
a.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(a);
finish();
}
我也试过了:
@Override
public void onBackPressed(){
Intent a = new Intent(this, CrisolMainApp.class);
a.putExtra(CrisolMainApp.CERRAR_APP, true);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
a.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(a);
finish();
}
【问题讨论】:
-
那么您发现它为什么不起作用了吗?我面临同样的问题,感觉永远卡住了
-
这是 Android 11 的新标志。因此您必须以编程方式检查版本并采取相应措施!它不仅适用于
标签: android