2012-02-02 148 views
0

我正在使用名爲MyTimeReceiver的broadcastreceiver每隔一小時(每10秒測試一次)顯示一次吐司。我的問題是,吐司沒有顯示。吐司不顯示

Calendar cal = Calendar.getInstance(); 
     cal.setTimeInMillis(System.currentTimeMillis()); 
    //add 10 seconds to calendar object 
     cal.add(Calendar.SECOND, 10); 
     mAlarmSender = PendingIntent.getBroadcast(SafeDrive3Activity.this, 
     0, new Intent(SafeDrive3Activity.this, MyTimeReceiver.class), 0); 

     // Schedule the alarm! 
     AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
     am.set(AlarmManager.RTC_WAKEUP, 
     SystemClock.elapsedRealtime(),mAlarmSender); 

廣播接收器類:

這裏從主要活動文件(SafeDrive3Activity)剪斷我的代碼

public class MyTimeReceiver extends BroadcastReceiver 

{ 

    @Override 

    public void onReceive(Context context, Intent intent) { 
    Toast.makeText(context,"HOUNOTIFICATION", Toast.LENGTH_LONG).show(); 
      } 
     } 

請幫助這個已經快把我逼瘋了幾個小時。

+0

你註冊接收器的代碼或清單? – waqaslam 2012-02-02 21:23:16

+0

Rob 2012-02-02 21:27:19

+0

等等......你在這個名字前面有一段時間嗎?如果沒有,放一個。 「.MyTimeReceiver」 – 2012-02-03 00:48:17

回答

1

這一個是全部的地方。你創建一個Calendar你永遠不會使用,你告訴AlarmManager使用RTC_WAKEUP然後使用elapsedRealtime()時間源:)。

試試這個:

am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), mAlarmSender); 
+0

我已取出日曆代碼: mAlarmSender = PendingIntent.getBroadcast(SafeDrive3Activity.this, 0,new Intent(SafeDrive3Activity.this,MyTimeReceiver.class),0); //安排鬧鐘! AlarmManager am =(AlarmManager)getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),1000 * 60 * 10,mAlarmSender); – Rob 2012-02-02 21:34:48

+0

任何想法如何讓MyTimeReceiver中的吐司每10秒顯示一次? – Rob 2012-02-02 21:36:08

+0

Nvm,剛剛看到你的編輯。我更換了 - am.set(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime(),mAlarmSender); WITH - am.set(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),mAlarmSender); – Rob 2012-02-02 21:41:35

0

嘗試此displaing敬酒,每10秒。

am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000*10, mAlarmSender));