2 u014297278 u014297278 于 2016.03.09 09:30 提问

关于android service的问题 3C

在activity中使用startservice启动service,然后长按home键,清除后台该程序,但是service也被删掉了,在模拟器中不会被删掉,但是真机就被删掉了,请问为什么

7个回答

u011249920
u011249920   2016.03.09 09:37

还是用真机调试比较好;可以写一个BrocastReceiver,在Service销毁回调事件中发送广播,广播接收器重新启动Service

u014297278
u014297278 但是清除后台,没有走service的onDestroy事件
接近 2 年之前 回复
VNanyesheshou
VNanyesheshou   2016.03.09 09:37

你真机中清理,会把一些相关的停止。模拟器中应该没有清理吧。

dcxy0
dcxy0   Ds   Rxr 2016.03.09 09:43

如果需要实现service长期留存后台,可以考虑通用做法:1.两个service相互监听,一个被杀掉另一个立刻启动;2.让service每隔几分钟自动重启一次。

u014297278
u014297278   2016.03.09 10:07

清除后,整个程序都被杀掉了,service随着立刻就消失

qq_32969313
qq_32969313   2016.03.09 16:29

真机是原生系统吗?深度定制系统有的有后台自动清理功能

zhengnan110
zhengnan110   2016.03.09 23:20

机器问题,一些定制系统会强行杀死后台应用,如小米。

hou_weiyi
hou_weiyi   2016.03.10 10:52

放到前台吧,或者给进程加锁

 Notification notification = new Notification(R.drawable.icon, getText(R.string.ticker_text),
        System.currentTimeMillis());
Intent notificationIntent = new Intent(this, ExampleActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(this, getText(R.string.notification_title),
        getText(R.string.notification_message), pendingIntent);
startForeground(ONGOING_NOTIFICATION, notification);
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!