0

この構造にほぼ従うアクティビティがあります。

public class myActivity extends Activity implements myCallback{
   //Code

   @Override
   public void onCreate(Bundle savedInstaceState){
       super.onCreate(savedInstanceState);
       new myAsyncTask(myActivity.this).execute();
   }
   public void myCallback(Context context){
   //Code
   Toast.makeText(context,"Hello",Toast.LENGTH_SHORT).show();
   }
}

myAsyncTask には myCallback() インターフェースが定義されており、最終的にそれを呼び出します。何をしても、Toast であろうと ProgressDialog であろうと、表示しようとしている UI 要素が何であれ、表示されません。また、例外もありません。残りのコールバック コードは完全に実行されます。どうしてこれなの?

4

2 に答える 2

0

使用してみてください:

public class myActivity extends Activity implements myCallback{
   //Code
   Context mContext;


   @Override
   public void onCreate(Bundle savedInstaceState){
       super.onCreate(savedInstanceState);
       mContext = this;
       new myAsyncTask(getApplicationContext()).execute();
   }
   public void myCallback(Context context){
   //Code
   Toast.makeText(mContext,"Hello",Toast.LENGTH_SHORT).show();
   }
}
于 2012-08-23T10:26:00.127 に答える
0

context を使用する代わりに、 getApplicationContext を使用してください...トーストが表示されることを願っています...このように

   Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();
于 2012-08-23T11:11:26.563 に答える