我开发了一个应用程序,其中包含一个主屏幕与文章列表。 如果您点击它,您将访问另一个屏幕中的详细信息。安卓导航按钮上果冻豆
我实现了ActionBarSherlock,所以我使用了“向上”按钮模式进行此活动。
然后我给这个应用程序添加了一个小部件。当你点击小部件时,你直接访问细节活动。
“向上”按钮已按照Google推荐(http://developer.android.com/training/implementing-navigation/ancestral.html)执行。
我的问题是,在API级别15及以下,它完美的作品。它调用下面的代码:
@Override
public boolean shouldUpRecreateTask(Activity activity, Intent targetIntent) {
String action = activity.getIntent().getAction();
return action != null && !action.equals(Intent.ACTION_MAIN);
}
但在豆形软糖,使用的代码是:
public boolean shouldUpRecreateTask(Intent targetIntent) {
try {
PackageManager pm = getPackageManager();
ComponentName cn = targetIntent.getComponent();
if (cn == null) {
cn = targetIntent.resolveActivity(pm);
}
ActivityInfo info = pm.getActivityInfo(cn, 0);
if (info.taskAffinity == null) {
return false;
}
return !ActivityManagerNative.getDefault().targetTaskAffinityMatchesActivity(mToken, info.taskAffinity);
} catch (RemoteException e) {
return false;
} catch (NameNotFoundException e) {
return false;
}
}
方法的第一部分检索。如果堆栈必须重新创建应加载的活动信息。
但我还是不明白什么是行:
!ActivityManagerNative.getDefault().targetTaskAffinityMatchesActivity(mToken, info.taskAffinity);
谁能帮助我在这条线,我真的需要找出如何初始化一切顺利获得正确的?
我需要关于特定代码的信息,该代码返回true或false,以便能够为正确的情况创建正确的意图。对我来说,你的答案是空的,当然,如果一个方法需要返回一个布尔值,你必须返回一个布尔值... – Seynorth
再次检查我的答案。我从官方文档添加了东西! – Pavlos
我也编辑了我的问题。我知道该方法的目标是什么,我解释说我将它用于上行导航模式。我唯一的问题是如何很好地初始化我的意图或清单或任何其他文件来获得“真正”的价值。 – Seynorth