1

Utilities.javaのサブクラス以外のクラス から通知を生成しようとしていContextます。クラスを提供することを考え、このSingletonContextような投稿を見てきました。通知はコールバックから生成されるため、いつでも生成できるため、異議を唱えたいと思います。return != null ContextmessageReceived()

このようなことをすることの欠点は何ですか:

public static Context c;    

public class MainActivity extends Activity{
    @Override
    public void onStart()
      super.onStart()
      c = this.getApplicationContext();
}

//other method somewhere outside this class
public Context getContext(){
   return MainActivity.c
}

これを に置くのと何ら変わらないと思いますがonCreate()、アクティビティの開始時にコンテキストが最新であることを保証します。

4

2 に答える 2

5

Context は、このアクティビティへの参照をメモリ内に保持しますが、これは望ましくない場合があります。おそらく使用します

this.getApplicationContext();

代わりは。これにより、ファイル IO や、コンテキストが必要とする他のほとんどのことを行うことができます。この活動への具体的な言及なし。

于 2013-10-29T15:58:11.553 に答える
0

onResume メソッドを上書きする必要があるかもしれません。新しいアクティビティを開いて元に戻すと、onStart メソッドは呼び出されません。

Android ライフサイクル:ドキュメント

ところで:ダイアログまたはトーストを使用してApplicationContextの問題について読んだので、コンテキストを使用してこれらを作成する場合は、アクティビティをコンテキストとして使用する必要があります。

于 2014-08-06T04:04:05.620 に答える