6

サービスでSMSを送信しようとします。SMSが送信されない場合は、しばらくしてからサービスを再起動することを意味します。そのためにタイマーを使用します。送信されたSMSがタイマーを停止したいことを意味する場合、タイマーを停止するには、タイマーを使用します。キャンセル(); その前に、タイマーが実行されているかどうかを確認する必要があります。確認方法は?

             int resultCode = getResultCode();
                 switch (resultCode) 
                 {
                case Activity.RESULT_OK:                 
                             timer.cancel();//Here I want to check timer running or not
                 break;

                 case SmsManager.RESULT_ERROR_GENERIC_FAILURE:  
                     timer_run();
                 break;

                 case SmsManager.RESULT_ERROR_NO_SERVICE:     
                     timer_run();
                 break;

                 case SmsManager.RESULT_ERROR_NULL_PDU:        
                      timer_run();
                  break;

                 case SmsManager.RESULT_ERROR_RADIO_OFF:        
                     timer_run();
                  break;

                 }

タイマースケジュール機能

    public void timer_run(){        

    TimerTask hourlyTask = new TimerTask () {
        @Override
        public void run () {
             Intent myIntent = new Intent(Myservice.this,Myservice.class); 
             startService(myIntent);


        }
    };
     timer.schedule (hourlyTask, 0l, 500*5*5);
   }    
4

2 に答える 2

12

やりたいことだけがあれば、タイマーが実行されているかどうかを確認する必要はありません(これはと のcancel()両方に当てはまります)。TimerTimerTask

ドキュメントには、

このメソッドは繰り返し呼び出すことができます。2 回目以降の呼び出しは効果がありません。

于 2013-08-20T07:43:38.013 に答える