0

我只想在我的服务完全停止时才做事。

所以我做了一个公共静态变量,将其初始化为 false、in onCreate()、true 和 in onDestroy()、false。

在我的活动中:

if(TripService.trip_service_state)
{
   stopService(newIntent(ProfileActivity.this,TripService.class));
   while (TripService.trip_service_state);
   do_stuff();
}

在我的服务中:

public static boolean trip_service_state=false;

onCreate()
{
    super.onCreate();
    trip_service_state=true;
}

onDestroy()
{
   trip_service_state=false;
   super.onDestroy();
}

现在,当我的服务运行时,应用程序收到 NOT RESPONDING 消息。

4

1 回答 1

0

由于 a与 aService在同一线程上执行,Activity因此无法执行将标志设置为 false 的代码:Activity 方法永远不会停止。这就是您获得 ANR 的原因。

您可以将 aBroadcast从发送ServiceActivityvia LocalBroadcastManager。(活动必须动态注册和注销相应的BroadcastReceiver

于 2019-10-12T20:44:48.250 回答