0

Существует одно требование, когда мне нужно показать окно предупреждения с кнопкой «Да» и «Нет», когда я получаю push-уведомление с использованием GCM.Показать оповещение по полученному уведомлению GCM

Там будет два scnerios:

  1. Если приложение в фоновом режиме, пользователь получает notificaiton в titile баре. На щелчок пользователя уведомлений будет направлен на приложение и должно быть показано, где пользователь будет иметь два варианта здесь окно предупреждения не то есть да или нет

  2. Если приложение находится на переднем плане, пользователь автоматически получает предупреждение окна должно быть показано, где пользователь будет иметь два варианта: Да или Нет **

Пожалуйста, помогите мне в достижении этого.

+0

Я уже сделал это в своем текущем приложении. –

+0

@ Простой план: Не могли бы вы поделиться мной кодом для того же? –

+0

@ACC напрямую спрашивает о коде? ha сначала сообщите свой код, что вы пробовали до сих пор? –

ответ

0

Используйте локальную шину событий, например LocalBroadcastManager, EventBus от greenrobot или Otto Square. Поднимите событие, когда поступит сообщение GCM. Регистр слоя пользовательского интерфейса для этого события, когда он находится на переднем плане, и отмените регистрацию, когда он переместится на задний план. Если вы определите, что слой пользовательского интерфейса не ответил на событие, отобразите Notification.

Here are three sample apps - по одному для каждой из вышеупомянутых реализаций шины событий - это демонстрирует это. Я использую AlarmManager, а не сообщение GCM, но концепция остается прежней.

0

Сначала вам нужно проверить, находится ли ваше приложение в фоновом режиме. Вы можете позвонить ниже код на OnPause() на каждый вид деятельности в приложении:

/** 
* Checks if the application is being sent in the background (i.e behind 
* another application's Activity). 
* 
* @param context the context 
* @return <code>true</code> if another application will be above this one. 
*/ 
public static boolean isApplicationSentToBackground(final Context context) { 
ActivityManager am = (ActivityManager)  context.getSystemService(Context.ACTIVITY_SERVICE); 
List<RunningTaskInfo> tasks = am.getRunningTasks(1); 
if (!tasks.isEmpty()) { 
ComponentName topActivity = tasks.get(0).topActivity; 
    if (!topActivity.getPackageName().equals(context.getPackageName())) { 
    return true; 
} 
} 

return false; 

}

Если да, то показывать уведомление пользователю.

Добавить эту строку в файле манифеста:

<uses-permission android:name="android.permission.GET_TASKS" /> 

Для создания Notification, вы можете проверить мой ответ here

Надеется, что это помогает.

Смежные вопросы