1. 程式人生 > >Android 關於App被殺死後,如何接收極光推送

Android 關於App被殺死後,如何接收極光推送

作為一個程式媛,我要做到的就是聽從上級的安排,有需求就實現。但是有的事情我表示真的很無力啊,就比如標題所說的需求。

因為ios在殺死app後都可以接收到通知,所以不懂的人就會覺得那Android應該都是可以的啊,

這個真是坑了我好多次啊,還有桌面角標也是同樣的,人家ios就是系統支援的啊。我的天!!發火

希望產品經理和專案經理 多多瞭解一下iOS和Android的一些區別,避免尷尬微笑

1.如何在殺死APP的時候,再重新拉起APP,

這個問題已經遇到很多次了,但是都沒有被解決,為什麼呢,因為解決不了啊罵人,好想罵人哦

遇到這個問題我也上網查了 好多資料,也嘗試了好多方法

1.比如說什麼搞兩個service互相拉起,試試了,也是不行,我是這麼想的 你的東西是寫在你APP裡面的,都殺死了,你還怎麼互相拉起,你還能吧service寫入系統??

不好意思我只是個Android程式媛,不是做C程式的

2.APP殺死,收不到極光推送,網上說在mainfest註冊自己的 recevice時,寫入這兩個就可以

<action android:name="android.intent.action.BOOT_COMPLETED" /><!--開機廣播-->
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /><!--網路狀態改變廣播-->

嘗試過了也不行,我這裡沒有搞懂的是為什麼app殺死跟開機有什麼關係??

網路狀態改變:因為現在的安卓手機為了達到省電省流量的情況,會自動把非白名單的使用者的網路禁止掉,只有在開啟應用的手機,才讓其聯網。

還有好多人說可以在mainfest加入

<!--   android:persistent="true" //,持續的,一直的,這樣的話,app是殺不死的,推送肯是強烈建議不要這樣做,因為這樣就像某些流氓軟體一樣了,畢竟我定有可以收到了。但們做個應用出來,也不想讓別人以為我們的是流氓軟體吧-->

還有說加這個的,我嘗試過 這些都是不可以

<intent-filter android:priority="1000">

最後說一下我研究的成果吧:

在極光推送自定義的Myrecevice裡面

public class MyReceiver extends BroadcastReceiver {
    private static final 
String TAG = "JIGUANG-Example"; public static int msgNum = 0; @Override public void onReceive(Context context, Intent intent) { try { Intent pushintent = new Intent(context, PushService.class);//啟動極光推送的服務 context.startService(pushintent);

然後吧這些加上,

android:persistent="true" 

<action android:name="android.intent.action.BOOT_COMPLETED" /><!--開機廣播-->
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /><!--網路狀態改變廣播-->

然後吧app手動設定為自啟動模式,本人嘗試了,VIVO手機殺死APP後可以收到推送,但是華為,三星的就不可以,其他手機沒有測試,因為沒有,

所以啊 ,還是不靠譜,就算這樣寫了,像華為,小米,這樣的手機系統分分鐘吧你乾死,難過

對於自啟動每個牌子的手機也是不同的,自啟動必須是引導使用者去開啟,不能直接寫許可權,如何想嘗試的同學,可以驗證驗證我的方法,說不定會有不一樣的收穫

最後我就直接去找極光的客服了,問問他們要怎麼解決

下面是我跟極光推送客服的聊天諮詢,不用多數都明白了,吧這個交給上級,如果要做就讓他們去跟廠家商量合作。一般都是會不了了之的,因為要錢啊偷笑偷笑偷笑偷笑

最後就是,遇到這樣的問題的時候,不要急,主要還是跟上級溝通,說明情況大笑

如果已經通過程式碼方法實現了的大神,或者通過其他方法實現的,可以給我指教指教

如有不對的地方,多多包涵

好了,,吐槽這麼多了,不說了

喜歡的就給妹子點個贊,麼麼噠