我的任務是調用服務的每一個24小時及以上的基礎上,設置...的Android報警經理4.4.x.What不一致是替代解決方案來支持的minSdkVersion 9和targetSdkVersion 21
下面的代碼完美工作5分鐘,2小時,但不工作長時間如24小時以上在Moto E 4.4.4,三星S4 4.4.2和Nexus5 4.5 ..
以下代碼甚至不工作5分鐘小米Mi3 4.4.2,在報警轉儲中也不存在報警..
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
am2.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 86400000, pi);
} else {
am2.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 86400000, pi);
}
我的生成設置: - 安卓的minSdkVersion = 「9」 機器人:targetSdkVersion = 「21」 使用4.4.2 SDK構建的apk ...
檢查API引用之後我才知道,報警從Android 4.4x及以上版本不一致... 如何使從minSdkVersion 9到19及以上兼容的確切報警。 我花了更多的時間來分析和調試,因爲我必須等待24小時以上來檢查報警服務電話。 提供了提示或解決方案將是非常有益和讚賞
「 https://developer.android.com/about/versions/android-4.4.html http://developer.android.com/reference/android/app/AlarmManager.html 注:報警管理器用於在您希望您的應用程序代碼運行在特定的時間,即使你的應用程序不是個案目前正在運行,對於正常的定時操作(滴答,超時等),使用Handler更容易,效率也更高 注意:從API 19開始(KITKAT)報警傳送是不精確的:操作系統會移動報警以最大限度地減少喚醒和電池的使用,有新的API支持需要嚴格交付保證的應用程序;請參閱setWindow(int,long,long,PendingIntent)和setExact(int,long,PendingIntent)。 e targetSdkVersion早於API 19將繼續看到之前的行爲,即所有報警在請求時都準確傳送。 「