Отображение существующей активности через уведомление - PullRequest
0 голосов
/ 10 апреля 2011

У меня проблема с тем, что мне нужно загрузить существующее действие, которое уже открывается щелчком по действию, моя проблема заключается в том, что при нажатии на уведомление пытаются создать новое действие и, таким образом, вызвать метод onCreate и т. Д.четвёртый.Как мне просто открыть заново только открытую (тогда работающую в фоновом режиме) активность?

Кроме того, как решить проблему с Android, это может убить фоновую активность, которую я собираюсь открыть с уведомлением?

Еще одна большая проблема заключается в том, что если пользователь отображает уведомление вручную, он переходит в приложение и выполняет необходимые действия, что делает уведомление бесполезным, а затем, когда пользователь нажимает на уведомление, как мне определить, что пользователь уже вручную сделалзадание, которое должно выполнить уведомление?

С уважением, MilindaD

Ответы [ 2 ]

0 голосов
/ 05 июля 2016

Не уверен, что это изменилось с 2011 года, очень вероятно, но в 2016 году изменение манифеста сработало очень легко для меня.Это было добавление "singleTask", которое имело значение.

    <activity
        android:name=".MainActivity"
        android:launchMode="singleTask">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
0 голосов
/ 10 апреля 2011

Похоже, что здесь есть несколько отдельных проблем.

У меня есть проблема, когда мне требуется загрузить существующее действие, которое уже открывается при нажатии на действие, моя проблема заключается в том, что когдапри нажатии на уведомление делается попытка создать новое действие, вызывая метод onCreate и т. д.Как мне просто открыть заново только открытую (тогда запущенную в фоновом режиме) активность?

Итак, если я вас правильно понимаю, пользователь просматривает вашу активность, затем он уходит, а затем возвращаетсячерез уведомление.В этом сценарии onCreate обычно не вызывается снова, если приложение не самоубийственно, не установлено android:noHistory или не было уничтожено системой для восстановления памяти.Если вы пытаетесь написать действие, которое не будет убито, вы делаете что-то не так, и вам, вероятно, следует использовать Сервис: http://developer.android.com/reference/android/app/Service.html

Также, как я должен решить проблему Androidможет убить фоновую активность, которую я намереваюсь открыть уведомлением?

Проблема здесь со словами "фоновая активность".Вы должны предположить, что любая активность может быть уничтожена, если пользователь собирается сделать что-то еще.Если вам нужен код для продолжения работы независимо от того, что делает пользователь, вы должны использовать службу (см. Выше).

Еще одна большая проблема заключается в том, что отображаемое пользователем уведомление вручную переходит кприложение и выполняет необходимые действия, что делает уведомление бесполезным, а затем, когда пользователь нажимает на уведомление, как мне определить, что пользователь уже выполнил задачу, которую должно выполнить уведомление?

Когда вашактивность запускается, она может просто отменить любые уведомления.Возьмите экземпляр с NotificationManager по getSystemService() и позвоните .cancel(NOTIFICATION_ID).

...