панель уведомлений службы Android - PullRequest
0 голосов
/ 27 февраля 2012

Я пытаюсь создать централизованную систему уведомлений. Я использую пользовательское уведомление с 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);
    }
}
...