2013-10-15 14 views
0
//global 
private AsyncTask<String,String,String> myAsync; 

//inside my activity 
public class Myreceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     String arg[] = {intent.getStringExtra("id")}; 
     myAsync= new AsyncTask<String, String, String>(); //error here 
     myAsync.execute(arg); 
    } 
} 

的錯誤是:收到一個錯誤,同時創建的AsyncTask

無法實例類型的AsyncTask

爲什麼呢?

+2

公共** [摘要](http://docs.oracle.com/javase/教程/ java/IandI/abstract.html)**類AsyncTask擴展對象{...} – Selvin

+0

添加時我得到以下錯誤:非法修飾符字段myAsync;只有公開,保護,私人,靜態,最終, 瞬態和易失性允許 – tony9099

+2

AsyncTask是抽象的,請閱讀Java來理解爲什麼你不能實例化一個抽象類。更糟糕的是@Dhaval,建議調用一個沒有實例化的類的方法(註釋掉該行)什麼是垃圾.. – Siddharth

回答

1

它的一個樣品的AsyncTask活動..

public class StockWatch extends Activity { 


String myData; 
Button refresh; 
myHtmlParser myParser; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    refresh = (Button)findViewById(R.id.refresh); 
    myParser = new myHtmlParser(); 
    refresh.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View arg0) { 
      myAsyncTask myWebFetch = new myAsyncTask(); 
      myWebFetch.execute(); 
     } 
    }); 
} 

class myAsyncTask extends AsyncTask<Void, Void, Void> { 

    TextView tv; 

    myAsyncTask() { 
     //default constructor 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     super.onPostExecute(result); 
     //do your stuff 
    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     //do your stuff 
    } 

    @Override 
    protected Void doInBackground(Void... arg0) { 
      //do your stuff 
    } 
} 

}

更多細節參見here

相關問題