Я пытаюсь возобновить свою деятельность из уведомления, но это воссоздает деятельность, а не возобновляет ее.Возобновление деятельности извещения, вызывающего onCreate
Как и все сообщения, относящиеся к этой проблеме, укажите создание PendingIntent
и установку этого с соответствующими флагами (как показано ниже) и добавление singleTop|singleInstance
в AndroidManifest.
Уведомление Код:
NotificationManager mNotifyMan = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
mNotifyMan.cancelAll();
Notification.Builder mNB = new Notification.Builder(this);
mNB.setOngoing(true);
Intent intent = new Intent(parentContext, main.class);
intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
PendingIntent pendingIntent = PendingIntent.getActivity(parentContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
mNB.setContentIntent(pendingIntent);
mNB.setSmallIcon(R.drawable.ic_notify_icon);
mNB.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_noti_large));
mNB.setContentTitle(Title);
mNB.setContentText(Message);
mNB.setColor(0);
mNotifyMan.notify(777, mNB.build());
Я понимаю, один должен пройти умысел с текущим контекстом.
При возобновлении действия через onPause()
по адресу onResume()
он возобновляет и восстанавливает последнее состояние активности, то есть работающий счетчик потоков имеет увеличенные значения.
Проблема:
При возобновлении уведомления (т.е. щелкающего по уведомлению), активность воссоздана. Я попытался разрешить это с помощью
, когда onPause()
выполняется, отправив текущее состояние активности через базовый класс в уведомление, тем самым воссоздавая уведомление с текущим состоянием.
Вот мой AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cynetstudios.wifimanager">
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-feature android:name="android.hardware.wifi" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:launchMode="singleInstance">
<activity android:name="com.cynetstudios.frequencyselector.main" android:configChanges="orientation|screenSize|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="com.cynetstudios.frequencyselector.serviceWifiFreqManager" android:exported="false"/>
</application>
</manifest>
я мог бы что-то не хватает тривиальной, любой совет?
Использование режима запуска singleInstance не является правильным способом справиться с этим. Это сильно повредит ваше приложение, если ваше приложение имеет более 1 «Активность». Вы должны посмотреть http://stackoverflow.com/questions/5502427/resume-application-and-stack-from-notification/5502950#5502950 –