-1

現在の通知を削除するためにこのサンプル コードを使用すると正常に動作しますが、このコードでこのタイマーが何をしているのか知りたいですか? 私は19秒ごとに通知を削除したいので、コードには2つのタイマーがあり、30分ごとに通知を削除したい場合はどちらを変更しますか?? このtewoタイマーの機能は何ですか? myTimer.schedule(myTask, 19 * 1000 , 19 * 1000);30分ごとに削除通知を行うと、どれを変更しますか???

public class TimeAlarm extends BroadcastReceiver {

    NotificationManager nm;

    @Override
    public void onReceive(Context context, Intent intent) {
        nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        CharSequence from = "CherryApplication";
        CharSequence message = "Launcher application for games.";

        MyTimerTask myTask = new MyTimerTask();
        Timer myTimer = new Timer();

        Intent startMyActivity = new Intent(context, MainActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
                startMyActivity, 0);
        Notification notif = new Notification(R.drawable.cherry_icon,
                "CherryApplication", System.currentTimeMillis());
        notif.setLatestEventInfo(context, from, message, contentIntent);
        nm.notify(1, notif);
        myTimer.schedule(myTask, 19 * 1000, 19 * 1000);
    }

    class MyTimerTask extends TimerTask {

        public void run() {
            nm.cancel(1);

            System.out.println("");
        }
    }
}
4

3 に答える 3

0

API を確認Timer.scheduleすると、2 番目のパラメーターは最初の「タスク実行」からの時間をミリ秒単位で示し、3 番目のパラメーターはタスクが再度実行される頻度を示していることがわかります。

したがって、タスクを 30 分ごとに実行する場合は、これを入力する必要があります。

myTimer.schedule(myTask,30*60*1000,30*60*1000);
于 2013-06-27T11:46:35.710 に答える
0

これを見てください。機能をよりよく説明します。要約する:

public void schedule (TimerTask task, long delay, long period)

API レベル 1 で追加 特定の遅延後に固定遅延実行を繰り返すタスクをスケジュールします。

パラメータ task は、スケジュールするタスクです。 最初の実行までのミリ秒単位の遅延時間。 period 後続の実行間のミリ秒単位の時間。 delay < 0 または period <= 0 の場合、 IllegalArgumentExceptionを スローします。Timerがキャンセルされた場合、またはタスクがスケジュールまたはキャンセルされた場合、IllegalStateException 。

于 2013-06-27T11:47:54.757 に答える