2012-02-13 9 views
0

私はSMSを予定しています。私はその目的のためにタイマーを使うことに決めました。私の研究の中で、私は、Alarm Managerがアンドロイドの1つの時間イベントをスケジューリングするためのより適切なオプションであることを発見しました。どんな指導も実りあります。アンドロイドでSMSスケジュールを設定する

私は所与のコードのように私のサービスにタイマーを実装する:

パブリッククラスSMSTimerServiceは、サービス{

private Timer timer = new Timer(); 

Long delay = 10000L;//for long we have to keep L at the last of the integer; 

@Override 
public IBinder onBind(Intent intent) { 
    // TODO Auto-generated method stub 
    return null;//null means we are not using any IPC here 
} 

@Override 
public void onCreate() { 
    // TODO Auto-generated method stub 
    super.onCreate(); 
    Log.i("prativa","service has started"); 
    startService(); 

} 
@Override 
public void onDestroy() { 

    super.onDestroy(); 
    Log.i("prativa","service is destroying"); 
    shutdownService(); 
} 
/* 
* starting the service 
* */ 
private void startService() 
{ 
    TimerTask task = new TimerTask(){ 

     @Override 
     public void run() { 
      sendSMS(); 

     }}; 
    timer.schedule(task, delay); 
} 
private void sendSMS() 
{ 
    String phone = "5556"; 
    String message = "This is my test message"; 

    SmsManager sms = SmsManager.getDefault(); 
    sms.sendTextMessage(phone, null, message, null, null); 



} 
private void shutdownService() 
{ 
    if(timer != null) 
     timer.cancel(); 
    Log.i("Prativa","Timer has stopped"); 

} 

}

+0

あなたはこれまで何をしていますか? –

+0

@ Seshu Vinay - これまでのところ、私は連絡先を集めてメッセージを保存しました。私はsmsが送られるべきである遅延時間を設定しました。私の主な問題は、スケジューリングを実行する方法を理解できないことです。私はタイマー、アラームマネージャーとカウンターの間で混乱しています。 - – Prativa

答えて

3

を拡張し、これは私があなたのために持っているものです。

http://mobile.tutsplus.com/tutorials/android/android-fundamentals-scheduling-recurring-tasks/

編集:AlarmManagerを経由して放送をトリガーする方法:このアラームはすぐに最初の時間をオフに設定することを

Intent broadCastIntent = new Intent(this, "YOURBROADCASTRECEIVER.class"); 
PendingIntent intent = PendingIntent pendingIntent = PendingIntent.getBroadcast(
       this, 0, intent, 0); 
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 
       System.currentTimeMillis(), 
       AlarmManager.INTERVAL_HOUR, pendingIntent); 

注意を。後で設定したい場合は、 "System.currentTimeMillis()* x"を乗算することができます。ここで、x = 1000は1秒を意味します。

+0

私たちはバックグラウンドサービスでカウンターを実装しSMS – Prativa

+0

contd ...を送信することができます。ブロードキャストレシーバー – Prativa

+0

からこのサービスを開始できますか?設定して、送信されたSMSの数を保存し、alarmmanager – ezcoding

関連する問題