8

AsyncTaskクラスを拡張して別のスレッドを定義しました。このクラス内で、AsyncTaskonPostExecuteおよびonCancelledメソッド内でいくつかのトーストとダイアログを実行します。トーストにはアプリケーションのコンテキストが必要なので、次のことだけを行う必要があります。

Toast.makeText(getApplicationContext(),"Some String",1);

ダイアログはAlertDialog.Builder、コンストラクターにコンテキストも必要とする を使用して作成されます。このコンテキストがアクティビティのコンテキストであるべきだと考えるのは正しいですか? すなわち

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());  

wheregetActivityは、現在のアクティビティを返すユーザー定義のクラスである可能性があります。もしそうなら、この状況を処理する最善の方法は何ですか? クラスを作成するgetActivityか、現在のアクティビティのコンテキストを AsyncTask のコンストラクターに渡しますか?

私はの使用を理解しようとしていると思いますContext-メモリリークが問題になる可能性があることに気付きました(これはまだ本当に理解していません)、getApplicationContext()可能であれば使用するのが最善の方法です。

4

1 に答える 1