0

サービスを起動するブロードキャスト レシーバーがあります。このサービスでは、メイン アプリケーションがアクティブかバックグラウンドかを確認する必要があります。これを行う方法はありますか?

4

3 に答える 3

2

Application クラスを拡張して、アプリケーションの現在の状態を保存できます。すべてのアクティビティの onPause() および onResume() メソッドから更新する必要があります。

public class MyApplication extends Application {

    public static boolean isAppVisible() {
      return visible;
   }  

    public static void inForeground() {
      visible = true;
    }

    public static void inBackground() {
      visible = false;
    }

    private static boolean visible;
}

アプリケーション クラスを AndroidManifest.xml に登録します。

<application
    android:name="your.app.package.MyApplication"
    android:icon="@drawable/icon"
    android:label="@string/app_name" >

プロジェクト内のすべてのアクティビティに onPause と onResume を追加します (必要に応じて、アクティビティに共通のスーパークラスを作成することもできますが、アクティビティが既に MapActivity/ListActivity などから拡張されている場合は、以下を手動で記述する必要があります)。 :

@Override
protected void onResume() {
    super.onResume();
    MyApplication.inBackground();
}

@Override
protected void onPause() {
    super.onPause();
    MyApplication.inForeground();
}
于 2013-04-15T09:44:10.193 に答える