8

私が作成したクラスの 1 つは、次のActivityイベントが発生したときに反応する必要があります。

  • onStart()
  • onPause()
  • onResume()
  • onStop()

アクティビティ自体でそれらに反応できます。

public class Activity extends ApplicationContext
{
    protected void onCreate(Bundle savedInstanceState);

    protected void onStart();

    protected void onRestart();

    protected void onResume();

    protected void onPause();

    protected void onStop();

    protected void onDestroy();
}

から、Activity特定のイベントが発生したことを問題のオブジェクトに伝えることができましたが、この考えは好きではありませんobject/class。理想的には、オブジェクトがこれらのイベントの登録を担当し、Activity.

何か案は?前もって感謝します。

4

3 に答える 3

7

API レベル 14 には Application.ActivityLifecycleCallbacks があります。
その前に、申し訳ありませんが、いいえ。
クラスを他の人に提供したい場合は、最も一般的なアクティビティを拡張する抽象クラスを提供するか、独自のアクティビティのライフサイクル メソッドに特定の呼び出しを配置する必要があります。

保護されたボイド onPause() {
  super.onPause();
  yourClassInstance.onPause();
}

より一般的にして、NotifyingActivity.LifecycleListener を受け入れる抽象 NotifyingActivity クラスを作成し、クラスにそのようなリスナーを実装させて、コンストラクターに登録することもできます。

于 2012-05-09T08:18:48.760 に答える