から見られるように GoogleのAndroidドキュメント 私達はそれを見ます
Params実行時にタスクに送信されるパラメータの型。
進捗バックグラウンド計算中に発行された進行単位のタイプ。
結果バックグラウンド計算の結果の型
でも述べた この 素晴らしい答え
しかしそれでは、なぜ Void
結果の型としてAndroid Studioによって次の警告が表示されます。 doInBackground
ライン:
doInBackground(String...)" in "(..)MainActivity.myTask" clashes with "doInBackground(Params...)" in "android.os.AsyncTask"; attempting to use incompatible return type
これは、 AsyncTask
宣言されている:
private class myTask extends AsyncTask<String,Void,Void> {
@Override
protected void doInBackground(String... url) {
//do stuff with url[0]
}
@Override
protected void onPostExecute() {
//more stuff
}
}
比較すると、これはうまくいくようです:
private class myTask extends AsyncTask<String,Void,String> {
@Override
protected String doInBackground(String... url) {
//do stuff with url[0]
return "hi";
}
@Override
protected void onPostExecute(String result) {
//more stuff
}
}
このトピックについてはさまざまな質問がありますが、ほとんどの場合、 AsyncTask
パラメータまたはパラメータとクラスの戻り値。
回答:
回答№1は4このコードを試してください
private class myTask extends AsyncTask<String,Void,Void> {
@Override
protected Void doInBackground(String... url) {
//do stuff with url[0]
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
//more stuff
}
}