2017-03-20 4 views
2

Ich versuche asynctask in einer meiner Android-Anwendung wie unten zu verwenden, aber seine Warnung wie Unchecked Aufruf an 'Ausführen (Params ...)' als Mitglied des Rohtyps 'android.os .AsyncTask‘Warnung in Asynctask Verwendung

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(); 
 
    }

ich lernen android noch und in dieser Warnung verwirrt. Ich kann das Rätsel nicht lösen. Lass mich wissen, ob mich jemand korrigieren kann. Danke

Antwort

1

Ich versuche AsyncTask in einer meiner Android-Anwendung wie unten zu verwenden, aber seine was ich wie dieses Ungeprüfter Call to Warnung ‚execute (Params ...)‘ als Mitglied der rohen Art ‚android.os. AsyncTask '

Die Warnung wird durch die Parameter für die AsyncTask verursacht.

Klassendefinition ändern:

public class AsyncServerOnlineCheck extends AsyncTask { 

} 

diese:

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

} 

From Android Developers:

Die drei Typen von einer asynchronen Aufgabe verwendet werden, die folgenden:

Params, der Typ der Parameter, die bei Ausführung an den Task gesendet werden.

Progress, der Typ der während der Hintergrundberechnung veröffentlichten Fortschrittseinheiten.

Result, der Typ des Ergebnisses der Hintergrundberechnung.

Literaturhinweise - AsyncTask

+0

Wenn ich so als sein geben Fehler wie ‚Klasse AsyncServerOnlineCheck‘ verwenden müssen entweder abstrakt deklariert werden oder abstrakte Methode tun im Hintergrund implementieren ....‘ – Priya

+0

@Priya mir eine zweite geben, Ich werde meine Antwort aktualisieren. –

+0

Vielen Dank für Ihre Hilfe – Priya

0

Wenn Sie Ihre asynchrone Aufgabe definieren, definieren Sie nicht die Generika, die es verwenden soll. Daher gibt es keine Überprüfungen der Arten von Variablen, die herumgereicht werden. Das heißt, wenn Sie einen Fehler haben, stürzen Sie zur Laufzeit ab, anstatt zu kompilieren, was im Allgemeinen schlechter ist. Definieren Sie die 3 generischen Typen wie public class AsyncServerOnlineCheck extends AsyncTask<Void, Void, Void> oder was auch immer anwendbar ist, um die Warnung loszuwerden.

Verwandte Themen