在IOS中我有2个应用程序(应用程序A和应用程序B)将执行不同的目标,但在1点,应用程序A将使用uri方案调用应用程序B来执行应用程序A没有的功能。
我想在Android上实现此功能,目前已经开发了一个用于启动对App B的调用的演示。现在我正在开发App B,它将从演示应用程序接收uri方案。
问题:
App B使用uri方案返回演示应用程序后关闭演示应用程序。 当我回到主页并打开多任务以重新打开App B(或通过图标打开App B)时,它重新打开的页面是用于演示应用程序的功能,但我想要的是App B的登录页面。
这是intent-filter
的Manifest的一部分<activity
android:name="com.apps.MasterActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:clearTaskOnLaunch="true"
android:windowSoftInputMode="adjustPan" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data
android:host="x-callback-url"
android:scheme="myapp" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
这是我回调演示应用程序的地方
Intent sendIntent = new Intent(Intent.ACTION_VIEW, responseUri);
sendIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
startActivity(sendIntent);
答案 0 :(得分:0)
尝试将此添加到AndroidManifest.xml中的活动代码
android:clearTaskOnLaunch="true"
答案 1 :(得分:0)
显然我找到了一个解决方案,可以强制应用程序在返回演示应用程序后显示登录页面。将此代码放在activity.java文件中。
@SuppressWarnings("deprecation")
@Override
public void onDestroy()
{
super.onDestroy();
System.runFinalizersOnExit(true);
System.exit(0);
}
我知道它正在使用的是一个已弃用的函数,但是当将来出现问题或者找到更好的解决方案时,它会尝试解决它。
修改强> 找到了一个更好的解决方案,不需要使用我已经忘记将其设置为false的弃用函数。
当应用程序通过Uri Scheme连接时,我有一个设置为true的标志,我只需要将其设置为false,它将被修复。这是我所做的更改位置
Intent sendIntent = new Intent(Intent.ACTION_VIEW, responseUri);
sendIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
startActivity(sendIntent);
Util.isUriScheme = false;