簡體   English   中英

不會從另一個意圖過濾器中調用“ onCreate()”方法

[英]“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM