だから、私は活動とサービスを持っています。サービスは、メイン アプリケーションのスレッドをハングアップさせる多くの作業を行っているため、このサービスをリモート プロセス (マニフェストの :remote) で実行することにしました。サービスがメイン プロセスで動作している間はすべてが機能していましたが、リモート プロセスで奇妙なことが起こります。
サービスの onCreate メソッドの最後で、 SERVICE_RUNNING 変数の値をtrueに設定しました。1 行上の 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
}
前もって感謝します!