Android TaskStackBuilder是';他没有按预期工作
我想做的是在Android中创建一个通知,每当点击一个活动时就会打开它。此活动称为“NotificationsActivity”,其父级为“MainActivity”。每当向用户显示NotificationsActivity时,我希望他们能够按下后退按钮进入主活动。我一直在使用这里的说明()来尝试让它工作。然而,无论我尝试什么,只要我从NotificationsActivity按下back键,应用程序就会完全退出。我能想到的唯一问题是,我的应用程序有一个登录屏幕,我还将其标识为主和启动器。我不认为这会造成问题,但这就是我所能想到的 总而言之。我想要的是:Android TaskStackBuilder是';他没有按预期工作,android,Android,我想做的是在Android中创建一个通知,每当点击一个活动时就会打开它。此活动称为“NotificationsActivity”,其父级为“MainActivity”。每当向用户显示NotificationsActivity时,我希望他们能够按下后退按钮进入主活动。我一直在使用这里的说明()来尝试让它工作。然而,无论我尝试什么,只要我从NotificationsActivity按下back键,应用程序就会完全退出。我能想到的唯一问题是,我的应用程序有一个登录屏幕,我还将其标识为主和启动器。我不认
<activity
android:name=".LoginActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<activity
android:name=".NotificationsActivity"
android:parentActivityName=".MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
编辑:我从项目中删除了LoginActivity类,它没有任何区别。所以,现在我不知道我做错了什么
第二次编辑:
为了补充Skizo的答案,我必须支持操作栏上的后退按钮。下面是处理该问题的代码。我从Skizo提供的方法覆盖和下面的代码中调用“goBack”
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case android.R.id.home:
goBack();
break;
}
return super.onOptionsItemSelected(item);
}
private void goBack(){
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
finish();
}
只需覆盖
通知活动
上的onBackPressed()
复制并粘贴此方法:
@Override
public void onBackPressed() {
// super.onBackPressed();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
finish();
}
只需覆盖
通知活动
上的onBackPressed()
复制并粘贴此方法:
@Override
public void onBackPressed() {
// super.onBackPressed();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
finish();
}
LogCat上有错误吗?没有错误。通常,如果应用程序崩溃,我甚至在最近的列表中都看不到它了。然而,在这种情况下,它最近仍然出现。LogCat上有错误吗?没有错误。通常,如果应用程序崩溃,我甚至在最近的列表中都看不到它了。然而,在这种情况下,它仍然出现在最近。谢谢!这让我走了一半。它只适用于“硬件后退”按钮。操作栏上的“后退”按钮仍处于退出状态。我通过添加这个代码解决了这个问题。去他妈的。我无法在这里正确显示代码。我将编辑这篇文章并把它放在那里。我要在我的答案中添加一些东西吗?如果你解决了问题,或者我帮你解决了问题,请随意投票或将其标记为正确的^^^^对不起,我在等着看其他人是否也会有答案。虽然你的答案确实有效,但它并没有真正回答最初的问题。也就是说,当我实际上从Android开发者网站复制/粘贴代码时,为什么我的原始代码不起作用?请不要以为我不欣赏你的回答。我真的喜欢。这让我度过了工作日中相当烦人的一段时间。再次感谢!谢谢这让我走了一半。它只适用于“硬件后退”按钮。操作栏上的“后退”按钮仍处于退出状态。我通过添加这个代码解决了这个问题。去他妈的。我无法在这里正确显示代码。我将编辑这篇文章并把它放在那里。我要在我的答案中添加一些东西吗?如果你解决了问题,或者我帮你解决了问题,请随意投票或将其标记为正确的^^^^对不起,我在等着看其他人是否也会有答案。虽然你的答案确实有效,但它并没有真正回答最初的问题。也就是说,当我实际上从Android开发者网站复制/粘贴代码时,为什么我的原始代码不起作用?请不要以为我不欣赏你的回答。我真的喜欢。这让我度过了工作日中相当烦人的一段时间。再次感谢!