[英]“onCreate()” method is not called from another intent filter
我有一個活動-> A,它有兩個意圖過濾器。 首次調用onCreate()方法時。 沒關系。 但是,當一個意圖過濾器已經調用它時,如果另一個意圖過濾器調用了它,則不會調用onCreate()方法。
這是清單中的Activity標簽:
<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>
這是Activity的onCreate:
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;
}
}
......
......
}
您可能要使用launchMode的SingleTop模式。 通過使用此方法,您將在android Activity Lifecycle方法的onNewIntent(Intent intent)中收到新的Intent。
換句話說,如果活動已經在頂部,並且新的Intent正在啟動該活動,那么新的Intent將通過onNewIntent()
方法傳遞到同一Activity
實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.