2016-12-30 27 views
2

簡單的演示項目的GitHub後不見了:https://github.com/Try4W/AlarmManagerDemoAlarmManager:從的PendingIntent最近的應用程序在某些設備上刷卡應用

在仿真器(安卓4.1.1,安卓6):

  1. 我安排新的PendingIntentAlarmManager通過adb shell dumpsys alarm
  2. 檢查活動報警,看我Intent
  3. 關閉App通過通過adb shell dumpsys alarm
  4. 最近應用刷卡它
  5. 檢查活動報警,看我Intent
  6. BroadcastReciver開火時間!

在我的設備(樂視網單/安卓6):

  1. 我通過adb shell dumpsys alarm
  2. AlarmManage
  3. 檢查活動報警,調度新PendingIntent看到我Intent
  4. 關閉App通過從最近的應用程序中刷卡
  5. 通過檢查活動警報
  6. 沒有看到在所有

Intent

  • BroadcastReciver沒有被解僱如果我將應用程序添加到「受保護的應用程序」 Intent從最近使用的應用程序刪除後不會被刪除。

    但是!在我的設備AliExpress的應用程序發佈通知,而不添加到「受保護的應用程序」。

    注:報警調度沒有問題的BOOT_COMPLETED

    他們是如何做到這一點?

    我已經嘗試過:

    1. 設定的報警通過alarmManager.setAlarmClock(...)
    2. 設定的報警通過setExactAndAllowWhileIdle(...)
    3. 使用意向過濾器,以Service在分離過程
    4. 運行執行 BroadcastReciever
    5. 設定的鬧鐘
  • +1

    利用「保護應用」一些手機制造商必須添加到列表中自動 –

    +0

    @nickfriskel這是奇怪的行爲喜愛和信賴的應用程序。第三方警報應用程序如何工作而不在「白名單」中? – Alexandr

    回答

    1

    在某些(大部分)Android設備上,從最近應用程序列表中滑動應用程序與從Apps設置屏幕中的force-closing相同。

    Android假定這意味着用戶不希望從這個應用程式任何活動,直到進一步的通知,這意味着手動由用戶應用程序啓動。

    看到這個:AlarmManager does not work when app is force closed

    +0

    應用程序的啓動BroadcastReceiver調用沒有問題。此外,它成功安排新的警報。 – Alexandr

    +0

    即使從最近的應用程序中刷出應用程序,「MyTherapy Meds」等類似應用程序也不會添加到「受保護的應用程序」。我反編譯它的apk,並且在安排他們的警報時找不到任何特殊的東西。 – Alexandr

    +1

    當然,'BroadcastReceiver's會喚醒你的應用程序,以及許多其他Android生態系統的意圖。只有AlarmManager報警是一個問題。您可以在電話上註冊一個經常呼叫的廣播,並在您發現您之前可能被迫關閉時重新安排鬧鐘。 – marmor

    相關問題