我正在尝试在我的一个Android应用程序中使用asynctask,但它给我这样的警告 未选中要求执行(参数...)'作为原始类型的成员' android.os.AsyncTask'
public class Splash extends AppCompatActivity {
JSONArray products = null;
JSONParser jParser = new JSONParser();
Methods methods;
AppItem appItem;
LanguageItem languageItem;
RoundedImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
imageView = (RoundedImageView)findViewById(R.id.splash);
Picasso.with(this)
.load(R.drawable.splashscreen)
.fit().centerCrop()
.into(imageView);
methods = new Methods(this);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
new AsyncServerOnlineCheck().execute();
}
},1000);
}
public class AsyncServerOnlineCheck extends AsyncTask {
boolean isReachable;
@Override
protected Object doInBackground(Object[] objects) {
isReachable = NetworkCheck.isReachable(Splash.this);
return null;
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
if (isReachable) {
new loadAppData().execute();
//Toast.makeText(SplashsActivity.this, "Server is online", Toast.LENGTH_SHORT).show();
} else {
connectionerror();
}
}
}
public void connectionerror() {
// progressBar.setVisibility(View.GONE);
AlertDialog.Builder alertDialog = new AlertDialog.Builder(Splash.this);
alertDialog.setTitle("Connection Error!");
alertDialog.setMessage("There Some issue to connect Server...Please try again later");
alertDialog.setPositiveButton("Retry",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
new AsyncServerOnlineCheck().execute();
}
});
alertDialog.setNegativeButton("Exit",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Splash.this.finish();
}
});
alertDialog.show();
}

我在这个警告中学习了android而且很困惑。我无法解决这个难题。如果有人能纠正我,请告诉我。感谢
答案 0 :(得分:1)
我正在尝试在我的一个Android应用程序中使用asynctask 下面,但它给我这样的警告,如未经检查的电话 'execute(Params ...)'作为原始类型'android.os.AsyncTask'的成员
警告是由AsyncTask
的参数引起的。
更改您的课程定义:
public class AsyncServerOnlineCheck extends AsyncTask {
}
到此:
public class AsyncServerOnlineCheck extends AsyncTask<Object, Void, Object>{
}
异步任务使用的三种类型如下:
Params
,执行时发送给任务的参数类型。
Progress
,后台计算期间发布的进度单元的类型。
Result
,后台计算结果的类型。
进一步阅读 - AsyncTask
答案 1 :(得分:0)
定义异步任务时,您没有定义它应该使用的泛型。因此,没有检查传递的变量类型,这意味着如果你有一个bug,你将在运行时崩溃而不是编译失败,这通常更糟。定义3个泛型类型,如public class AsyncServerOnlineCheck extends AsyncTask<Void, Void, Void>
或适用于删除警告的任何内容。