Android没有';如果应用程序已启动,则无法按url方案打开活动
我有StartActivity和MainActivity,在清单方案中已设置Android没有';如果应用程序已启动,则无法按url方案打开活动,android,url-scheme,Android,Url Scheme,我有StartActivity和MainActivity,在清单方案中已设置 <activity android:name=".StartActivity" android:label="@string/app_name" android:theme="@style/AppThemeNoActionBar"> <intent-filter> <action android
<activity
android:name=".StartActivity"
android:label="@string/app_name"
android:theme="@style/AppThemeNoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data 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>
<activity
android:name=".MainActivity"
android:launchMode="singleTask"
android:parentActivityName=".StartActivity" />
最初的设计是在用户在浏览器中按下url后,打开StartActivity,然后在用户登录时转到MainActivity
这在第一次正常工作(应用程序被终止,用户按下url)。
但当应用程序处于后台(在MainActivity中)时,在用户按下url后,它并没有通过StartActivity,而是只在MainActivity的Resume上运行
有人知道原因吗?如何确保它进入StartActivity?谢谢。当您第一次从URL打开活动时,活动创建的so
onCreate()
方法被调用。但如果您的活动位于后台,则
将调用onNewIntent()
,因此请重写此方法并将代码放在此处
添加以下方法:在MainActivity中
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// add your code here
}
在舱单中:
<activity
android:name=".MainActivity"
android:launchMode="singleTask"
/>
如果您想要传递任何输入值,那么您可以通过Bundle传入Intent,该Bundle被接收到
onNewIntent(Intent-Intent)
,您可以像我们从Intent获取数据一样从一个活动发送到下一个活动 你能发布StartActivityChecked的代码吗?通过使用调试器,onNewIntent在MainActivity中没有被调用。我想你已经删除了android:launchMode=“singleTask”,这就是为什么它没有被调用的原因。如果你在清单中使用android:launchMode=“singleTask”,不需要在StartActivity中添加意图标志。请原谅我的错误,android:launchMode=“singleTask”在我的代码中,只是没有包含在本文中
<activity
android:name=".MainActivity"
android:launchMode="singleTask"
/>
Intent intent = new Intent(context, MainActivity.class);
startActivity(intent);