2011-07-28 58 views
2

我正在開發使用報警管理器和廣播接收器使用本地通知 一個Android應用程序。我收到通知時沒有任何錯誤。我沒有收到通知,如果我強制使用設置 - >應用程序 - >管理應用程序 - > MyApplication-> ForceStop來停止我的應用程序。我的代碼是如何在應用程序停止時在Android中獲取本地通知?

要安排事件

 Calendar cal = Calendar.getInstance(); 
     cal.add(Calendar.MINUTE, 2); 
     Intent intent = new Intent(this, AlarmReceiver.class); 
     intent.putExtra("alarm_message", "O'Doyle Rules!"); 
     PendingIntent sender = PendingIntent.getBroadcast(this, 192837, 
       intent, PendingIntent.FLAG_UPDATE_CURRENT); 
     AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 
     am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender); 

我的廣播接收器

try 
     { 
      Bundle bundle = intent.getExtras(); 
      String message = bundle.getString("alarm_message"); 
      Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); 
      Intent i=new Intent(context,AlertActivity.class); 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(i);  
     } 
     catch (Exception e) 
     {  
      e.printStackTrace(); 
     } 

請給我一些建議,以解決我的問題。由於提前

+0

你可以顯示你的logcat錯誤,所以我試圖找到你錯誤的地方 – Pratik

+0

我沒有收到任何登錄貓錯誤 – David

回答

0

你能解釋一下它多一點...我猜不使用任何背景的服務或應用程序插件樣的,你如何能指望的事​​情,你的應用程序將繼續受力更均勻後運行密切???

+0

1.設置鬧鐘並殺死鬧鐘(使用工作人員)後,鬧鐘永遠不會熄滅。爲什麼?我認爲這是意圖和廣播接收器背後的想法。此外,Android可以殺死警報,因爲它需要資源?這可能嗎? – David

+0

正是我想要這個 – David

0

這是行不通的,必須做到以下幾點:

Calendar cal = Calendar.getInstance(); 
cal.setTimeInMillis(SystemClock.elapsedRealtime()); 
cal.add(Calendar.MINUTE, 2); 

...等等...

0

API forcestoppackage將取消與包裝相關的 警報所以什麼也不會發生在將來。

forcestopPackage()將發送一個廣播與行動「package_restart」,AlarmManagerService聽這個廣播,並刪除所有報警由應用程序,它是力量停止設置。

相關問題