我想从一些活动(MainOptionActivity)一直启动一个活动(TargetActivity),这样如果用户按下TargetActivity的后退按钮,它就会返回到MainOptionActivity。
现在正在执行以下操作
SplashScreenActivity -> MainOptionActivity -> SomeActivity -> ... -> SomeService -> TargetActivity
但我想这样做,这会丢弃MainOptionActivity之后的所有活动/服务
SplashScreenActivity -> MainOptionActivity -> TargetActivity
谢谢!
P.S 应用程序在API 15上运行,parentActivityName不支持
答案 0 :(得分:1)
您可以从清单中声明活动的父级,如下所示:
<activity
android:name=".activities.TargetActivity"
android:parentActivityName=".activities.MainOptionActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activities.MainOptionActivity" />
</activity>
更新:
我知道这不是更好的方法,但如何覆盖后退按钮的调用呢?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
Log.d("MainActivity", "onKeyDown");
if (keyCode == KeyEvent.KEYCODE_BACK)
{
Intent i = new Intent(getApplicationContext(), TargetActivity.class);
MainOptionActivity.this.finish();
startActivity(i);
}
else
{
return super.onKeyDown(keyCode, event);
}
}
答案 1 :(得分:0)
尝试这样做:
对于按下后退按钮时不想返回的每个活动,将此位代码添加到用于调用活动的意图中:
Intent intent = new Intent(this, YourActivity.class);
contactIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
此标志告诉您的活动不要在活动堆栈中保留它的历史记录。