所以,我有一个活动和一个服务。服务做了很多工作,挂起我的主应用程序的线程,所以我决定在远程进程中运行这个服务(:清单中的远程)。尽管服务在主进程中运行时一切正常,但在远程进程中发生了一些奇怪的事情。
在我的服务中 onCreate 方法结束时,我将 SERVICE_RUNNING 变量的值设置为true。Log.d 上面的一行确认,它的值确实是true。但是当我从我的活动中调用静态方法 isRunning()(它返回 SERVICE_RUNTIME 的值)时,它返回 false。这是我的代码:
服务:
public class PlayService extends Service {
private static Boolean RUNNING = false;
@Override
public void onCreate() {
super.onCreate();
SERVICE_RUNNING = true;
Log.d("ctw", "onCreate() " + SERVICE_RUNNING); // "onCreate() true" in logcat
}
public static Boolean isRunning()
{
Log.d("ctw", "isRunning() " + SERVICE_RUNNING);
return SERVICE_RUNNING;
}
}
活动:
if(PlayService.isRunning())
{
// executes when service is running and PlayService is not a remote process
} else {
// executes always when PlayService is a remote process
}
提前致谢!