我刚刚实施了一个使用新版Google 2013 I / O Api(Google Play服务)进行位置更新的应用程序:http://developer.android.com/training/location/receive-location-updates.html
我的应用程序工作(在后台也是如此)但问题是,如果我的设备内存不足,或者我只是手动清理内存,该服务就会停止工作。没有位置更新操作系统将终止服务,并且如果内存可用,则不会重新启动它。
在我发现的Android服务文档中:
Android系统将仅在内存不足时强制停止服务,并且必须为具有用户焦点的活动恢复系统资源。如果服务绑定到具有用户焦点的活动,则它不太可能被杀死,并且如果声明服务在前台运行(稍后讨论),那么它几乎永远不会被杀死。
如何强制Google Play服务加入前台服务? (像Messanger等)
谢谢!
答案 0 :(得分:1)
我遇到了同样的问题,我不得不将服务带到前台和Alhamdullilah以下为我工作。
如果您的服务未绑定,请在onStartCommand()方法中添加以下内容。
.......
Notification.Builder builder = new Builder(this);
builder.setSmallIcon(R.drawable.ic_launcher);
builder.setContentTitle("content title");
builder.setTicker("ticker");
builder.setContentText("content text").setWhen(System.currentTimeMillis());
Notification notification = builder.build();
notification.flags |= Notification.FLAG_NO_CLEAR;
startForeground(42, notification);
return START_STICKY;