我Service在我的应用程序中使用它需要运行,直到我的应用程序被卸载,但问题是它被操作系统杀死.
我们怎样才能防止它被操作系统杀死?或者,如果它被杀死,我们可以通过编程方式再次重启该服务吗?
我有一个后台服务,当内存不足时,它有时会被操作系统杀死.
开发指南简单地说"如果您的服务已启动,那么您必须将其设计为优雅地处理系统重新启动.如果系统终止您的服务,它会在资源再次可用时立即重新启动".
在一个(相关的)问题上,当服务被操作系统杀死时,在服务中启动的主动运行的AsyncTask会发生什么,即没有service.onDestroy被调用?它是否继续运行或与服务一起静静地撕开?
我有一个服务在与我的应用程序相同的过程中运行.
有时Android操作系统决定终止我的服务(可能是由于内存不足).
我的问题是:我的应用程序是否与服务一起被杀?或者它是如何工作的?
谢谢!
我需要在用户更改首选项时重新启动应用程序.清除堆栈对我没有帮助,因为这不会取消后端服务调用.我想杀死应用程序进程本身.我在用
Process.killProcess(Process.myPid());
Run Code Online (Sandbox Code Playgroud)
它可以帮我杀死应用程序.但我需要的是重新启动应用程序.意味着终止进程并触发新进程,以便应用程序再次启动.
有没有办法做到这一点?
提前致谢.
我在我的新应用程序中启动了一项服务.该服务是有前途的,带有通知.当在AVD 2.1 API Level 7中运行时,一切正常.但是当它在运行Gingerbread的三星Galaxy Tab上运行时,服务将启动(图标和应用程序名称出现在通知区域的顶部),但几秒钟后,服务就会消失.我可以看到的Log中的最后一个条目与我的App相关联,是我的Log.d("Taglines","Return with with"+ START_STICKY)的结果,它紧接在"return START_STICKY"之前.在我的服务的onStartCommand覆盖中,如下所示:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
int rc ;
Log.d("Taglines","onStartCommand()");
Toast.makeText(this, "Starting service TagsManager", Toast.LENGTH_SHORT).show();
Log.d("Taglines","Calling super.onStartCommand()");
rc = super.onStartCommand(intent,flags,startId);
Log.d("Taglines","super.onStartCommand return code was " + rc);
createNotification(INITIAL_NOTIFICATION_TEXT);
Log.d("Taglines","Returning with " + START_STICKY);
return START_STICKY ;
}
Run Code Online (Sandbox Code Playgroud)
通知设置如下:
void createNotification(String text) {
Log.d("Taglines","createNotification called");
if (mNotificationManager == null) {
// Get a reference to the Notification Manager
String ns = Context.NOTIFICATION_SERVICE;
mNotificationManager = (NotificationManager) getSystemService(ns);
Log.d("Taglines","Obtained …Run Code Online (Sandbox Code Playgroud)