Android 转到未启动的父活动

Android 转到未启动的父活动,android,android-activity,Android,Android Activity,我正在尝试实现一个“返回”到根活动函数 我的ActionBar套装上有 setDisplayHomeAsUpEnabled(true); 在我的舱单上我已经确定了 <activity android:name=".Activity2" android:label="@string/title_activity2" android:parentActivityName=".Activity1"> <meta-dat

我正在尝试实现一个“返回”到根活动函数

我的ActionBar套装上有

setDisplayHomeAsUpEnabled(true);
在我的舱单上我已经确定了

<activity
        android:name=".Activity2"
        android:label="@string/title_activity2"
        android:parentActivityName=".Activity1">
        <meta-data android:name="android.support.PARENT_ACTIVITY"
            android:value=".Activity1"/>
</activity>
对我来说,这似乎是合乎逻辑的,但没有成功

有什么我错过的吗


更新:我记录了该方法,它似乎根本没有输入case R.id.home,而是转到默认语句。但当我捕捉到所选项目的ID时,我得到了16908332,对应于home…?-

好的,这不完全是问题的答案,而是一个让它按照我想要的方式工作的解决方案

在调用setContentView方法之前,我启动Activity1并在intent start Activity2中使用一个额外参数,而不是从通知直接将其路由到Activity2。 这使它看起来像是直接启动到Activity2

然后,我还必须删除额外的intent参数。
如果我没有这样做,那么旧的意图将保留下来,如果我以后从应用程序历史记录中再次打开应用程序,它将重新运行。

好的,似乎上述问题的真正答案是,开关盒不是它,因为我使用的是R.id.home而不是android.R.id.home


如果我更改为该值,它将点击开关,作业可以从此处继续。

添加调试日志记录,并查看当您从通知启动Activity2时,正在执行哪个
If…else
子句,然后按UP。这是wierd。我记录了它,它似乎根本没有进入案例R.id.home,而是进入默认语句。但是当我捕捉到所选项目的ID时,我得到了16908332,它对应于home…?发布完整的
onOptionsItemSelected()
方法。更新了主要问题。在我找到ID值之前我也试着加起来对不起,我现在没有其他想法。
 public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    Log.d("Writing Activity","OnOptionsItemSelected entered");
    int id = item.getItemId();
    boolean handled = true;
    Log.d("Writing Activity","OnOptionsItemSelected id: "+id);
    switch (id) {
        case R.id.action_save:
            saveFile();
            break;
        case R.id.action_delete:
            deleteFile();
            break;
        case R.id.action_help:
            help();
            break;
        case R.id.up:
        case R.id.home:

            Log.d("Writing Activity","OnOptionsItemSelected Home");
            Intent upIntent = NavUtils.getParentActivityIntent(this);
            if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
                Log.d("Writing Activity","OnOptionsItemSelected 1");
                // This activity is NOT part of this app's task, so create a new task
                // when navigating up, with a synthesized back stack.
                TaskStackBuilder.create(this)
                        // Add all of this activity's parents to the back stack
                        .addNextIntentWithParentStack(upIntent)
                                // Navigate up to the closest parent
                        .startActivities();
            } else {
                Log.d("Writing Activity","OnOptionsItemSelected 2");
                // This activity is part of this app's task, so simply
                // navigate up to the logical parent activity.
                NavUtils.navigateUpTo(this, upIntent);
            }
            break;
        default:
            Log.d("Writing Activity","OnOptionsItemSelected default");
            handled = super.onOptionsItemSelected(item);
    }


    return handled;
}