作为一个程序媛,我要做到的就是听从上级的安排,有需求就实现。但是有的事情我表示真的很无力啊,就比如标题所说的需求。
因为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后可以收到推送,但是华为,三星的就不可以,其他手机没有测试,因为没有,
所以啊 ,还是不靠谱,就算这样写了,像华为,小米,这样的手机系统分分钟吧你干死,
对于自启动每个牌子的手机也是不同的,自启动必须是引导用户去开启,不能直接写权限,如何想尝试的同学,可以验证验证我的方法,说不定会有不一样的收获
最后我就直接去找极光的客服了,问问他们要怎么解决
下面是我跟极光推送客服的聊天咨询,不用多数都明白了,吧这个交给上级,如果要做就让他们去跟厂家商量合作。一般都是会不了了之的,因为要钱啊
最后就是,遇到这样的问题的时候,不要急,主要还是跟上级沟通,说明情况
如果已经通过代码方法实现了的大神,或者通过其他方法实现的,可以给我指教指教
如有不对的地方,多多包涵
好了,,吐槽这么多了,不说了
喜欢的就给妹子点个赞,么么哒