0

ユーザーがアプリの外にいるときは通知バーで通知を使用し、使用中はトースト通知を使用したいと考えています。

通知 (どちらの形式でも) はサービスから発行されるため、通知時にアクティビティについての知識はありません。

これを確実に知るための、正しくて最も信頼できるパターンは何ですか?

4

1 に答える 1

1

別の質問からのKlaasvaakの提案に基づいて、私がしたことは次のとおりです(ただし、提案されたものよりも少し簡単です)

私のサービス(または他のクラス。おそらくより普遍的なクラスにある方が良いでしょう)には、このコードがあります...

...
private static boolean viewingApp = false;

public static synchronized void setViewingApp(boolean viewing)
{
    viewingApp = viewing;
}

public static boolean isViewingApp()
{
    return viewingApp;
}
...

上記のクラスが破棄された場合、必要に応じてブール値が false に戻るため、問題ありません。

上記の setViewingApp() メソッドは、すべてのアクティビティが拡張する基本クラスで実行されます...

...
@Override
protected void onResume()
{
    MyClassCOntainingTheBoolean.setViewingApp(true);
    super.onResume();
}

@Override
protected void onPause()
{
    MyClassCOntainingTheBoolean.setInApp(false);
    super.onPause();
}
...
于 2013-05-31T15:14:10.497 に答える