Я пытаюсь создать централизованную систему уведомлений. Я использую пользовательское уведомление с 3 строками вывода. Это уведомление необходимо вызывать из нескольких действий и службы (если включено).
Каждое действие должно обновлять свою конкретную строку уведомления, а также не изменять другие 2 строки данных уведомления.
Как я могу вызвать этот код из службы?
Как я могу отменить уведомление из любого класса? Возможно, он не знает, что он работает.
Код класса уведомления:
public class notifyUser extends Activity
{
private NotificationManager mManager;
private static int APP_ID_LIST = 999;
private String pMess1 = "" ;
private String pMess2 = "" ;
private String pMess3 = "" ;
// -------------------------------------------------------------------
// constructor
// -------------------------------------------------------------------
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
notify_user();
finish();
}
// --------------------------------------------------------------------
// set notification if needed
// --------------------------------------------------------------------
private void notify_user()
{
pMess1 = myjdb.get_prefs("pMess1") ;
pMess2 = myjdb.get_prefs("pMess2") ;
pMess3 = myjdb.get_prefs("pMess3") ;
Notification notification = new Notification(R.drawable.gtracker_icon,
"Notify", System.currentTimeMillis());
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.notification);
contentView.setImageViewResource(R.id.ivImage, R.drawable.gtracker_icon);
contentView.setTextViewText(R.id.tvText1, pMess1 );
contentView.setTextViewText(R.id.tvText2, pMess2 );
contentView.setTextViewText(R.id.tvText3, pMess3 );
notification.contentView = contentView;
final Intent notificationIntent = new Intent(this, Shop.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );
mManager = (NotificationManager) getSystemService(Shop.NOTIFICATION_SERVICE);
notification.flags |= Notification.FLAG_NO_CLEAR;
notification.flags |= Notification.FLAG_ONGOING_EVENT;
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.contentIntent = contentIntent;
mManager.notify(APP_ID_LIST, notification);
}
}