Работа с двумя фильтрами намерений перезапускается, но основной фильтр намерений не вызывается при перезапуске, вызывается другой фильтр намерений - PullRequest
0 голосов
/ 04 декабря 2018

Есть два намерения для деятельности.android.intent.action.MAIN и android.intent.action.VIEW.Теперь рассмотрим ситуацию сбоя приложения, затем приложение автоматически перезапустится.но цель, используемая при перезапуске, не является основным фильтром намерений (android.intent.action.MAIN).Я хочу перезапустить приложение с помощью этого намерения (android.intent.action.MAIN).

вот мое действие в намерении

     <activity
        android:name=".login.Login"
        android:configChanges="orientation|keyboardHidden"
        android:windowSoftInputMode="adjustResize"
        android:launchMode="singleTask">
        .....
        .....



        <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=".*\\.asdf"
                tools:ignore="AppLinkUrlError" />
        </intent-filter>

    </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);

        Uri data = getIntent().getData();
        if (data != null) {
            getIntent().setData(null);
            try {
                importData(data);
            } catch (Exception e) {
                // warn user about bad data here
                finish();
                return;
            }
        }
......
.....
...

}

вот onNewIntent ()

    @Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);

    Uri data = intent.getData();
    if (data != null) {
        getIntent().setData(null);
        try {
            importData(data);
        } catch (Exception e) {
            // warn user about bad data here
            finish();
            return;
        }
    }
}

1 Ответ

0 голосов
/ 11 декабря 2018

Активность входа в систему имела два фильтра намерений, как показано ниже.

<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" />
            <category android:name="android.intent.category.LAUNCHER" />
            <data
                android:scheme="content"
                android:mimeType="application/octet-stream"
                android:pathPattern=".*\\.asdf"
                tools:ignore="AppLinkUrlError" />
        </intent-filter>

, но когда активность входа в систему запускается вторым фильтром намерений и когда я перезапускаю приложение, оно запускается через второй фильтр намерений,это была проблема, с которой я столкнулся, и что я хотел сделать, это открыть операцию, используя первый фильтр намерений, когда он перезапустится.

Я мог бы решить эту проблему, добавив строку ниже в файле манифеста под логином Activity`следующее.линия ->

android:noHistory="true"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...