相关疑难解决方法(0)

如何强制重启服务?

我有一个后台服务,当内存不足时,它有时会被操作系统杀死.

  1. 如何模拟这种行为,以便我可以调试它?

开发指南简单地说"如果您的服务已启动,那么您必须将其设计为优雅地处理系统重新启动.如果系统终止您的服务,它会在资源再次可用时立即重新启动".

  1. 从被杀死到完成重启的调用顺序是什么?

在一个(相关的)问题上,当服务被操作系统杀死时,在服务中启动的主动运行的AsyncTask会发生什么,即没有service.onDestroy被调用?它是否继续运行或与服务一起静静地撕开?

service android restart low-memory kill-process

16
推荐指数
1
解决办法
1万
查看次数

"清除内存"+ appWidget崩溃后,服务不会重新启动

我已经构建了一个appWidget,它在onEnabled()方法上注册了一些服务.

问题是,在我使用内置任务管理器的Clean Memmory/Ram之后,appWidget视图崩溃(所有appWidgets TextView的文本都设置为默认值(TextView)),服务停止运行,从不重新启动.

这只发生在设置小部件一段时间后,如果我在设置小部件后立即清理Memmory/Ram,则不会发生错误,但我想这与任务管理器清理RAM的方法有关.

最后,我的问题是:有没有办法告诉android系统重新启动这些服务?我通过市场下载的其他应用程序似乎在此过程后继续正常工作.

会很高兴的想法和解决方案!谢谢先进,Gal :)

我使用的一些代码:

appWidget中的onEnabled()方法:

@Override
public void onEnabled(Context context) {
    super.onEnabled(context);

    Intent newinIntent = new Intent(context, CallService_1x1.class);
        context.startService(newinIntent);

    newinIntent = new Intent(context, SmsService_1x1.class);
        context.startService(newinIntent);
}
Run Code Online (Sandbox Code Playgroud)

其中一个服务的一些方法(其他服务非常相似,因为这是来自他们的抽象方法):

 @Override
  public int onStartCommand(Intent intent, int flags, int startId) {
      // We want this service to continue running until it is explicitly
      // stopped, so return sticky.
      Log.d("SERVICE-SMS","CallMonitorService - onStartCommand created");
      return START_STICKY;
  } 

@Override
  public void onCreate() {
    super.onCreate();
    context = this.getApplicationContext();
    Log.d("SERVICE-SMS","CallMonitorService created");
    registerObserver();
  }

@Override …
Run Code Online (Sandbox Code Playgroud)

java service android widget

4
推荐指数
1
解决办法
5966
查看次数

标签 统计

android ×2

service ×2

java ×1

kill-process ×1

low-memory ×1

restart ×1

widget ×1