Запустить действие с использованием ожидающего намерения, когда приложение работает в фоновом режиме - PullRequest
2 голосов
/ 25 апреля 2019

У меня возникла проблема с запуском DetailActivity с использованием ожидающего намерения при получении уведомления когда приложение работает в фоновом режиме, оно всегда запускает MainActivity (но когда приложение работает на переднем плане, все работает нормально)

Каждый может помочь мне, пожалуйста, и извините за мой плохой английский

notificationIntent

val intent = Intent(this, DetailActivity::class.java)
    intent.action = Intent.ACTION_MAIN
    intent.addCategory(Intent.CATEGORY_LAUNCHER)
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

PendingIntent

val pendingIntent = PendingIntent.getActivity(this, 0, intent, 
    PendingIntent.FLAG_CANCEL_CURRENT)

manifest.xml

<application
            android:name=".helper.App"
            android:icon="@drawable/ic_main_app"
            android:label="@string/app_name"
            android:roundIcon="@drawable/ic_main_app"
            android:supportsRtl="true"
            android:theme="@style/AppTheme"
            android:usesCleartextTraffic="true"
            tools:ignore="GoogleAppIndexingWarning"
            tools:targetApi="m">

        <activity
           ndroid:screenOrientation="portrait"
           android:theme="@style/Theme.MaterialComponents.Light.NoActionBar"
           android:name=".ui.activity.aduan.DetailActivity">
           <meta-data
                    android:name="android.support.PARENT_ACTIVITY"
             android:value="kominfo.com.umat.ui.activity.main.MainActivity"/>
        </activity>

        <activity
                android:screenOrientation="portrait"
                android:name=".ui.activity.main.MainActivity"
                android:launchMode="singleTop"
                android:label="@string/app_name"
                android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
</application>

1 Ответ

0 голосов
/ 25 апреля 2019

вы установили на DetailActivity в Manifest

<meta-data
    android:name="android.support.PARENT_ACTIVITY"
    android:value="kominfo.com.umat.ui.activity.main.MainActivity"/>

Это причина, по которой ваши DetailActivity нуждаются в MainActivity

Также попробуйте добавить следующие флаги вВаше намерение

Intent.FLAG_ACTIVITY_CLEAR_TOP
Intent.FLAG_ACTIVITY_SINGLE_TOP

и для Notification

notification.flags |= Notification.FLAG_AUTO_CANCEL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...