2012-04-10 88 views
1

我一直在試圖讓通知在正確的時間在Android上啓動。我希望他們在未來2分鐘內從App推出。如果我能在這裏工作,我可以很容易地將它運用到我真正需要的地方。日誌顯示所需的代碼行正在運行,但通知從未啓動。我花了超過8個小時來嘗試調試,並沒有得到任何地方。任何幫助都會很棒。使用報警管理器不工作的Android通知

這裏提醒代碼我已經創建了:

final PendingIntent pi = PendingIntent.getBroadcast(this.mContext, 
      0, 
      i, 
      PendingIntent.FLAG_ONE_SHOT); 

    TimeZone timeZone= TimeZone.getDefault(); 
    Calendar time= Calendar.getInstance(timeZone); 
    time.add(Calendar.MINUTE, 2); 

    this.mAlarmManager.set(AlarmManager.RTC_WAKEUP, 
      time.getTimeInMillis(), 
      pi); 

    Log.d ("setReminder",time.getTime().toLocaleString()); 

現在下面是我的OnAlarmRecieve代碼永遠不會運行2分鐘後根據日誌。該類擴展BroadcastReceiver

@Override 
public void onReceive(final Context context, 
     final Intent intent) { 
    Log.d(TAG, "Recieved wake up cal from Alarm Manger"); 


    final String tableName = intent.getStringExtra(IntentExtraStringStorage.TABLE_NAME); 
    final long rowID = intent.getLongExtra(IntentExtraStringStorage.ROW_ID, 
      -1); 
    final String titleString = intent.getStringExtra(IntentExtraStringStorage.NOTIFICATION_TITLE); 
    final String notificationString=intent.getStringExtra(IntentExtraStringStorage.NOTIFICATION_NOTE); 

    WakeUpReminderIntentService.acuireStaticLock(context); 

    /*if (tableName== Task.TABLE_NAME) { 
     launchTaskView(context, rowID); 
    } 
    else { 
     Log.e (TAG, "Did not Launch"); 
     Toast.makeText(context, "Did not work right", Toast.LENGTH_SHORT).show(); 
    }*/ 
    Intent i = new Intent (context, ReminderService.class); 
    i.putExtra("taskID", rowID); 
    i.putExtras(intent.getExtras()); 
    Log.d(TAG, "Launched task"); 
    //TODO Added code to build the screen correctly 
    //FIXIT this need to be finished. 
    context.startService(i); 
}]= 
+0

說不上來,如果它是你的問題或沒有,但我有一個類似的問題,事實證明,雖然的onReceive()被調用時,設備會去直接回到儘快的onReceive()返回睡覺,因此任何代碼應該在onReceive()返回後運行。我的解決方案是從onReceive()中調用PowerManager.userActivity()來強制設備完全清醒。 – 2012-04-10 22:36:43

+0

作爲參考,見:http://stackoverflow.com/questions/9650974/how-to-programatically-dismiss-the-screensaver-lock-screen-on-android-nook-simp和/或https:// github上。 com/jfriesne/Electric-Sign/blob/master/src/com/sugoi/electricsign/ElectricSignActivity.java – 2012-04-10 22:37:55

+0

問題我現在看起來像onReceive()從來沒有運行過。我是否需要確保清單中添加了一些內容以確保它發生? – Timeless 2012-04-10 22:58:57

回答

1

,我發現我的問題。結果我沒有把OnAlarmReciever作爲接收者放在mainfest中。還需要將另一件事情放入服務中。

退是新來的這個發展是這麼多的小東西。