1

我刚刚实现了一个使用位置更新和新的 Google 2013 I/O Api(Google Play 服务)的应用程序:http: //developer.android.com/training/location/receive-location-updates.html

我的应用程序工作(在后台),但问题是,如果我的设备内存不足,或者我只是手动清理内存,服务就会停止工作。不再有位置更新操作系统会终止服务,如果内存可用,它不会重新启动它。

在 Android 服务文档中,我发现:

Android 系统只会在内存不足的情况下强制停止服务,并且必须为具有用户焦点的活动恢复系统资源。如果服务绑定到具有用户焦点的活动,则它不太可能被杀死,如果服务被声明在前台运行(稍后讨论),那么它几乎永远不会被杀死。

如何强制 Google Play 服务使用前台服务?(如信使等)

谢谢!

4

1 回答 1

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;    
于 2013-08-02T07:09:30.957 回答