0

AsyncTask でサーバーと通信しました。そのデータに応じて、画面 A または画面 B のいずれかに移動したいのですが、これを行う正しい方法は何ですか?

postExcute セクションで新しいアクティビティを呼び出す必要がありますか? 現在、スプラッシュ画面にいます。

private class CheckLoginDetails extends AsyncTask<Void, String, String> {


        protected void onPreExecute() {
                //does stuff before excuting code
        }

        //does the main operation
        protected String doInBackground(Void... params)  {

            publishProgress("10", "Checking Login Details Exist . . .");

            if(checkForLogin()){    
                //validate with DB
                publishProgress("20", "Logging in, verifying . . .");
                if(sendforVerif()){
                    publishProgress("100", "You Are Logged In!");

                }else{                  
                    publishProgress("100", "Error Logging In.");

                }

            }else{
                //login or registration required
                publishProgress("100", "Login Required . . .");
            }

            return null;
        }

        //Update Progress       
        protected void onProgressUpdate(String... values) {
            mProgress.setProgress(Integer.parseInt(values[0]));
            statusReadout.setText(values[1]);
        }

        //Update UI with results
        protected void onPostExecute() {
            Intent intent = new Intent(SplashScreen.this, MenuScreen.class);
            SplashScreen.this.startActivity(intent);
        }

    }

それは正しくないと思います。

ティア

4

1 に答える 1

2

現在、コードを次のようonPostExecuteに変更する方法をオーバーライドしていません。AsyncTask

private class CheckLoginDetails extends AsyncTask<Void, String, String> {

@Override
    protected void onPreExecute() {
            //does stuff before excuting code
    }

    //does the main operation
@Override
    protected String doInBackground(Void... params)  {

             // your code here...
        return null;
    }

    //Update Progress 
@Override     
    protected void onProgressUpdate(String... values) {
  // your code here...
    }
   @Override
    protected void onPostExecute(String result ) {
        Intent intent = new Intent(SplashScreen.this, MenuScreen.class);
        SplashScreen.this.startActivity(intent);
    }

}
于 2013-02-25T23:37:58.727 に答える