簡體   English   中英

應用程序未運行時小米沒有收到通知

[英]Xiaomi does not receive notification when application is not running

我正在開發一個使用 Google 推送通知的應用程序。 應用程序在小米手機中運行時會收到通知,否則當它被殺死時不會收到通知。

如果我們想在應用程序被殺死時收到通知,那么我們需要允許從小米的安全應用程序中手動自動重啟應用程序。 我想要任何技巧以編程方式執行此操作而無需詢問用戶。 有沒有辦法做到這一點?

在此處輸入圖像描述

http://en.miui.com/thread-33826-1-1.html

如果小米要正確運行任何應用程序,需要手動完成五項設置。 我對此進行了大量研究,但無法以編程方式修復這些設置。 這些是設置:

  1. 自動啟動 -> 開啟(切換並重新啟動您的應用程序)
  2. 開發者選項->關閉MIUI優化
  3. 開發者選項 -> LOW/OFF 下的內存優化
  4. 電池和性能設置下對后台活動沒有限制
  5. 省電模式 -> 關閉

還有許多其他設備需要手動設置才能使應用程序按預期工作,例如聯想、一些 Micromax 設備。 公司對后台活動施加此類限制,以提高整體電池壽命。 facebook 和 whatsapp 等一些應用程序可以正常工作,因為這些應用程序可能已作為系統應用程序包含在內。

MIUI 6 & 7 之后:

MIUI省電模式默認設置為“標准”(后台訪問定位服務和網絡將被限制)

在哪里設置:

設置 -> 其他設置 -> 電池和性能 -> 管理應用程序電池使用 -> 省電模式 ->設置為關閉(MIUI 不會限制后台活動)

至於我的理解,一旦您在最近的應用程序菜單中清除應用程序或清除內存,小米(或 MIUI rom)將強制關閉與該應用程序相關的所有服務和內存,類似於用戶進入設置並強制停止應用程序,

該鏈接討論了相同的問題,因此除非用戶再次啟動,否則所有廣播接收器和服務都將結束,因此不會收到通知,

但是,您可以嘗試在設置中為您的應用程序權限啟用自動啟動,如果仍然不起作用,請嘗試創建自行重啟的服務並在設置中啟用自動啟動,自動啟動在 MIUI 中非常重要,直到它全部啟用通知或應用活動將被強制關閉並且永遠不會啟動

我遇到了類似的問題,並通過在我的應用程序中添加一個 BOOT_COMPLETED 接收器來修復它。

將以下內容添加到清單:

<receiver
    android:name=".receivers.BootReceiver"
    android:enabled="true">
    <intent-filter>
       <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

然后創建你的 BootReceiver 類

public class BootReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {

            Intent startServiceIntent = new Intent(context, FBTokenService.class);
            context.startService(startServiceIntent);

            Intent notificationServiceIntent = new Intent(context, FBNotificationService.class);
            context.startService(notificationServiceIntent);
        }
    }
}

它應該適用於此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM