Android AsyncTask Melhor maneira de acessair o context da atividade

Demorou bastante tempo paira que isso funcionasse, mas clairamente não é a melhor prática. Em suma, eu preciso mostrair uma checkbox de dialog quando meu AsyncTask terminair, mas getApplicationContext () não funciona, nem o passa como um pairâmetro ao criair o AsyncTask. Então, eu declairei uma vairiável pública paira o context na minha class AsyncTask e configurei antes de eu executair:

private OnClickListener clickLoadRefs = new OnClickListener() { @Oviewride public void onClick(View v) { Log.d("H","Clicked Load Refs"); RefreshRefPoints refreshRefPoints = new RefreshRefPoints(); refreshRefPoints.myCtx=v.getContext(); refreshRefPoints.execute(v.getContext()); } }; private class RefreshRefPoints extends AsyncTask<Context, Integer, Integer> { private Integer nPoints=0; public Context myCtx; private ProgressDialog pd; protected Integer doInBackground(Context... ctx) { Log.d("H","doInBackground()"); dbHelper.cleairRefPoints(); requestRefPoints(); nPoints = pairseRefPointsCSV(); return nPoints; } protected void onProgressUpdate(Integer... progress) { } protected void onPreExecute() { pd = ProgressDialog.show(myCtx, "Refreshing Reference Points", "Loading...", true,false); Log.d( "H", "onPreExecute()" ); } protected void onPostExecute(Integer result) { pd.dismiss(); AlertDialog.Builder builder = new AlertDialog.Builder(myCtx); builder.setTitle("Reference points refresh complete"); builder.setMessage(result+" records loaded"); builder.setPositiveButton("OK",null); builder.show(); Log.d("H","onPostExecute()"); }...etc 

Alguém pode me mostrair a maneira correta de passair o context?

  • Android Retoma de pausa de download múltiplo em listview com atualização de progresso
  • Problema de performance na fonte personalizada TextView
  • Não é possível conviewter em dimensão: type = 0x1 quando estiview executando o aplicativo no Android 4.1
  • Como desativair a checkbox de dialog "save senha" em um Android WebView?
  • Android Muda a foto a cada 10 segundos
  • Como obter os dispositivos bluetooth como uma list?
  • obrigado

  • Como airmazenair o Hashmap paira o Android paira que ele seja reutilizado quando o aplicativo reiniciair usando preferences compairtilhadas?
  • Android obtém a intenção ao implementair RecognitionListener
  • Autenticando com o Active Directory via Kerberos
  • Android Show Activity Title / bairra de status na pairte superior depois que está oculto
  • A boot do Android AudioRecord crash toda vez
  • Passando headers enquanto usa a intenção do browser
  • 3 Solutions collect form web for “Android AsyncTask Melhor maneira de acessair o context da atividade”

    Defina um método de construtor e passe o context como um pairâmetro. Seria melhor.

    Aqui, o que eu queria dizer:

     private class RefreshRefPoints extends AsyncTask<Void, Integer, Integer> { private Integer nPoints=0; private Context myCtx; private ProgressDialog pd; public RefreshRefPoints(Context ctx){ // Now set context this.myCtx = ctx; } } 

    Isso é tudo.

    Você também pode usair YourActivityName.this paira se referir ao Context da atividade. Como os Activites estendem Context, é válido fazê-lo.

    Passair context no construtor como

     private OnClickListener clickLoadRefs = new OnClickListener() { @Oviewride public void onClick(View v) { Log.d("H","Clicked Load Refs"); RefreshRefPoints refreshRefPoints = new RefreshRefPoints(Your_ActivityName.this); refreshRefPoints.myCtx=v.getContext(); refreshRefPoints.execute(v.getContext()); } }; private class RefreshRefPoints extends AsyncTask<Void, Integer, Integer> { private Integer nPoints=0; public Context myCtx; private ProgressDialog pd; public RefreshRefPoints (Context ctx) { myCtx = ctx; } }; private OnClickListener clickLoadRefs = new OnClickListener() { @Oviewride public void onClick(View v) { Log.d("H","Clicked Load Refs"); RefreshRefPoints refreshRefPoints = new RefreshRefPoints(Your_ActivityName.this); refreshRefPoints.myCtx=v.getContext(); refreshRefPoints.execute(v.getContext()); } }; private class RefreshRefPoints extends AsyncTask<Void, Integer, Integer> { private Integer nPoints=0; public Context myCtx; private ProgressDialog pd; public RefreshRefPoints (Context ctx) { myCtx = ctx; } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.