在父活动中启动活动

时间:2014-02-12 14:38:37

标签: android android-intent service android-activity google-gdk

我想从一些活动(MainOptionActivity)一直启动一个活动(TargetActivity),这样如果用户按下TargetActivity的后退按钮,它就会返回到MainOptionActivity。

现在正在执行以下操作

SplashScreenActivity -> MainOptionActivity -> SomeActivity -> ... -> SomeService -> TargetActivity

但我想这样做,这会丢弃MainOptionActivity之后的所有活动/服务

SplashScreenActivity -> MainOptionActivity -> TargetActivity

谢谢!

P.S 应用程序在API 15上运行,parentActivityName不支持

2 个答案:

答案 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);

此标志告诉您的活动不要在活动堆栈中保留它的历史记录。