2017-03-20 9 views
2

私は以下のような私のアンドロイドアプリケーションの1つでasynctaskを使用しようとしていますが、このような警告が表示されます 未処理コールは生のタイプのメンバー 'android.os' .AsyncTask」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(); 
 
    }

私はまだアンドロイドを学習し、この警告で混乱し。私はパズルを解くことができません。誰かが私を訂正できるかどうか私に教えてください。ありがとう

答えて

1

私は以下 ように私のアンドロイドアプリケーションの一つでasynctaskを使用しようとしていますが、その生タイプ「android.osの一員として「(... PARAMS)を実行して、」私は にこの未確認コールのような警告を与えます。 AsyncTask '

警告は、AsyncTaskのパラメータによって発生します。このに

public class AsyncServerOnlineCheck extends AsyncTask { 

} 

は、あなたのクラス定義を変更

From Android Developers:

非同期タスクによって使用される3種類の

public class AsyncServerOnlineCheck extends AsyncTask<Object, Void, Object>{ 

} 
は、以下の通りである:

Params、実行時にタスクに送信されるパラメータのタイプ。

Progress、バックグラウンド計算中に公開された進行単位のタイプ。

Result、バックグラウンド計算の結果のタイプ。

さらに読書 - AsyncTask

+0

私は「クラスAsyncServerOnlineCheck」のようなその与える誤差よりもそのように使用している場合は、抽象と宣言や抽象メソッドを実装する必要がありますいずれかをバックグラウンドで行う....」 – Priya

+0

@Priyaは私の第二を与え、私は私の答えを更新します。 –

+0

あなたの助けをたくさんありがとう – Priya

0

あなたの非同期タスクを定義するときには、使用するべきジェネリックスを定義していません。したがって、渡される変数のタイプについてのチェックはありません。つまり、バグがあると、コンパイルに失敗するのではなく実行時にクラッシュすることになります。これは一般的に悪いことです。 public class AsyncServerOnlineCheck extends AsyncTask<Void, Void, Void>のような3つのジェネリックタイプを定義するか、または警告を取り除くために適用されるものを定義してください。

関連する問題