我想从某个活动(MainOptionActivity)一直启动一个活动(TargetActivity),这样如果用户从TargetActivity按下后退按钮,它就会回到MainOptionActivity。
现在它做以下事情
SplashScreenActivity -> MainOptionActivity -> SomeActivity -> ... -> SomeService -> TargetActivity
但是我想这样做,这将丢弃MainOptionActivity之后的所有活动/服务
SplashScreenActivity -> MainOptionActivity -> TargetActivity
谢谢!
附言应用程序在 API 15 上运行,不支持 parentActivityName
您可以从清单中声明活动的父级,如下所示:
<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);
}
}
尝试这样做:
对于在按下"后退"按钮时不想返回到的每个活动,将以下代码段添加到用于调用该活动的目的中:
Intent intent = new Intent(this, YourActivity.class);
contactIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
此标志告诉您的活动不要将其历史记录保留在活动堆栈中。