我正在尝试在Android应用程序中实现深层链接。我一直关注this guide。我有一个从Android清单中启动和意图过滤的Android活动:
<activity
android:name=".MyActivity"
android:parentActivityName=".MainActivity" >
<intent-filter android:label="@string/filter_title_deep_link">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="com.example" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"/>
</activity>
我从adb产生了这个意图:
adb shell am start -W -a android.intent.action.VIEW -d "com.example://test" com.example
正在使用正确的意图数据创建活动,并按预期运行。但是,按下后退按钮后,应用程序退出。我希望后备堆栈使用MainActivity
构建,由Android清单中的parentActivityName
指定。显然事实并非如此。
在这种情况下,如何将父活动添加到后台?
我想知道我是否可以在通知环境中使用TaskStackBuilder
显示here,但不确定它是如何工作的。
也许我应该有一个中间活动来使用类似的东西构建主要活动:
TaskStackBuilder.create(this)
.addParentStack(MyActivity.class)
.addNextIntent(new Intent(this, MyActivity.class))
.startActivities();
答案 0 :(得分:8)
我遇到了同样的问题。因此,如果您希望用户转到您的父活动,只要他们按下UP
按钮,您就可以在AndroidManifest.xml
中定义父活动,然后以编程方式控制向上导航。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
NavUtils.navigateUpFromSameTask(this);
}
您可以在所有活动中执行相同操作,以便不断地将用户导航回主屏幕。此外,您可以在导航用户之前创建完整的后台堆栈。请阅读以下文档中的更多内容。
您可以通过调用isTaskRoot()
来检查深层关联活动是否有后备堆栈,以便返回到您应用的任务中。我不确定它是否确实有任何警告。
@Override
public void onBackPressed() {
if(isTaskRoot()) {
Intent parentIntent = new Intent(this, ParentActivity.class);
startActivity(parentIntent);
finish();
} else {
super.onBackPressed();
}
}
在这种情况下,您不必在Android Manifest中声明父活动。
答案 1 :(得分:5)
你试过这个吗,
syms x
f(x) = x^2; % Equivalent to: f = symfun(x^2,x);
df = diff(f,x) % Since f is a symfun, df will be
df(3)
如果是深层链接,您必须构建自己的App堆栈。
答案 2 :(得分:1)
我一直在使用Deep Linking的基础知识,为Android的应用程序链接和应用程序索引功能工作, 我希望这对索引应用页面很有用,并允许Google按照此处的指定抓取应用Deep link Guide
此最佳做法适用于App indexing API,因为您已从Android开发人员网站引用了App indexing Training网站的deeplink链接。