2013-11-21 4 views
0

В настоящее время я разрабатываю приложение, использующее AlarmManager, чтобы начать показывать пользователю каждые x минут. Мне также хотелось бы, чтобы постоянное уведомление в строке состояния показывало время до следующего всплывающего окна. Есть ли способ показать постоянное уведомление без фоновой службы. Если нет смысла перестать использовать AlarmManager и просто использовать услугу для всплытия намерения каждые x минут?Постоянное уведомление без обслуживания

По существу, мне необходимо убедиться, что намерение будет запущено каждые x минут, даже если телефон становится низким в памяти и что уведомление остается в строке состояния. Я также хотел бы иметь возможность щелкнуть уведомление, чтобы сбросить отсчет таймера. Каков наилучший способ достижения этих целей?

Спасибо, Натан

ответ

1

формировать уведомления попробовать это:

private void generateNotification(Context context, String message) { 

int icon = R.drawable.ic_launcher; 
long when = System.currentTimeMillis(); 
String appname = context.getResources().getString(R.string.app_name); 
NotificationManager notificationManager = (NotificationManager) context 
.getSystemService(Context.NOTIFICATION_SERVICE); 
int currentapiVersion = android.os.Build.VERSION.SDK_INT; 
Notification notification; 
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, 
new Intent(context, myactivity.class), 0); 

// To support 2.3 os, we use "Notification" class and 3.0+ os will use 
// "NotificationCompat.Builder" class. 
if (currentapiVersion < android.os.Build.VERSION_CODES.HONEYCOMB) { 
notification = new Notification(icon, message, 0); 
notification.setLatestEventInfo(context, appname, message, 
contentIntent); 
notification.flags = Notification.FLAG_AUTO_CANCEL; 
notificationManager.notify(0, notification); 

} else { 
NotificationCompat.Builder builder = new NotificationCompat.Builder(
context); 
notification = builder.setContentIntent(contentIntent) 
.setSmallIcon(icon).setTicker(appname).setWhen(0) 
.setAutoCancel(true).setContentTitle(appname) 
.setContentText(message).build(); 

notificationManager.notify(0 , notification); 
} 
} 

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

+0

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

+0

Если вы нажмете уведомление, оно исчезнет. Но если есть несколько уведомлений и если вы хотите вручную удалить уведомление, чем использовать метод notificationmanager.cancelAll(). –

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