Android &引用;onCreate();方法未从另一个意图筛选器调用
我有一个活动-->A,它有两个意图过滤器。当第一次调用onCreate()方法时。没关系。但是当它已经被一个意图过滤器调用时,如果它被另一个意图过滤器调用,则不会调用onCreate()方法 这是清单中的活动标记:Android &引用;onCreate();方法未从另一个意图筛选器调用,android,Android,我有一个活动-->A,它有两个意图过滤器。当第一次调用onCreate()方法时。没关系。但是当它已经被一个意图过滤器调用时,如果它被另一个意图过滤器调用,则不会调用onCreate()方法 这是清单中的活动标记: <activity android:name=".login.Login" android:configChanges="orientation|keyboardHidden" android:windowSoftInputMod
<activity
android:name=".login.Login"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="adjustResize"
android:launchMode="singleTask"
>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:scheme="content"
android:mimeType="application/octet-stream"
android:pathPattern=".*\\.octopus"
tools:ignore="AppLinkUrlError" />
</intent-filter>
</activity>
您可能需要使用的单顶模式。通过使用它,您将在android活动生命周期方法中获得新的意图
换句话说,如果活动已经在顶部,并且新的意图正在启动该活动,那么新的意图将被传递到
onNewIntent()
方法上的相同活动
实例。我尝试过,但随后创建了两个应用实例。创建的第一个应用程序实例也在那里。请帮助使用SingleTop
。您可以参考此链接了解有关启动模式的更多信息。非常感谢你。我引用了它,但现在的问题是当设置了singletop启动模式时,如果它不在task之上,那么将创建新的Activity实例。然后有两个相同的活动。这让用户感到困惑。请帮助我,我想这是正确的方法。因为如果您使用singleTask
,如果A在那里,您将启动B,然后再次启动A。新的意图将传递给A,但B将被销毁。
public void onCreate(Bundle savedInstanceState) {
if (getResources().getBoolean(R.bool.portrait_only)) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
super.onCreate(savedInstanceState);
// this is true when the second intent filter is used
Uri data = getIntent().getData();
if (data != null) {
getIntent().setData(null);
try {
importData(data);
} catch (Exception e) {
// warn user about bad data here
finish();
return;
}
}
......
......
}