2

次のコードがあります....通知が来ると...常に「1」が表示され、さらに通知がある場合はカウントされません....何が間違っていますか?

次から始まるコードに行きます。

public class ActionSendSMS extends Activity {

private static final int NOTIFY_ME_ID=5476;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.actionsendsms);

    givenotification(getBaseContext());
    finish();
}

…………

public void givenotification(Context context){


    //Get the notification manager
    String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager nm = (NotificationManager)context.getSystemService(ns);

    //Create Notification Object
    int count=1;
    int icon = R.drawable.red_ball;
    CharSequence tickerText = "Nice message!";
    long when = System.currentTimeMillis();
    final Notification notify = new Notification(icon, tickerText, when);

    notify.flags |= Notification.DEFAULT_SOUND;
    notify.flags |= Notification.FLAG_ONLY_ALERT_ONCE;
    notify.flags |= Notification.FLAG_AUTO_CANCEL;

    notify.number += count;

    //Set Notification send options
    Intent intent = new Intent(context, ActionNotifySendMessage.class);

    PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
    notify.setLatestEventInfo(context, "Message Alert", tickerText, pi);

    nm.notify(NOTIFY_ME_ID, notify);
}
4

2 に答える 2

3

count=11ずつインクリメントした後、カウントを次のように設定しますnotify.number??? カウンター自体をインクリメントするのを見たことがありません...

メンバーとして静的にして、次のように毎回インクリメントすることができます。

public class ActionSendSMS extends Activity {

    private static final int NOTIFY_ME_ID=5476;
    private static int count = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.actionsendsms);

        sendSMS();
        givenotification(getBaseContext());
        finish();
    }

    public void givenotification(Context context){


    //Get the notification manager
    String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager nm = (NotificationManager)context.getSystemService(ns);

    //Create Notification Object
    count++;
    int icon = R.drawable.red_ball;
    CharSequence tickerText = "PhoneFinder send GPS-message!";
    long when = System.currentTimeMillis();
    final Notification notify = new Notification(icon, tickerText, when);

    notify.flags |= Notification.DEFAULT_SOUND;
    notify.flags |= Notification.FLAG_ONLY_ALERT_ONCE;
    notify.flags |= Notification.FLAG_AUTO_CANCEL;

    notify.number += count;

    //Set Notification send options
    Intent intent = new Intent(context, ActionNotifySendMessage.class);

    PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
    notify.setLatestEventInfo(context, "DroidFinder Alert", tickerText, pi);

    nm.notify(NOTIFY_ME_ID, notify);
}
于 2012-05-22T12:56:55.237 に答える
1

int count=1;宣言したとおりにActivityをグローバルにします NOTIFY_ME_ID。内部でカウントを宣言しているgivenotification()ので、常に1で初期化されます。

于 2012-05-22T12:53:30.070 に答える