Java 如何在Android中从PostExecute开始新的意图?

Java 如何在Android中从PostExecute开始新的意图?,java,android,eclipse,Java,Android,Eclipse,这是我正在编写的代码。当我使用此代码运行我的应用程序时,它会停止运行,不会出现错误 我已经更改了manifest.xml,但它不起作用 public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity

这是我正在编写的代码。当我使用此代码运行我的应用程序时,它会停止运行,不会出现错误

我已经更改了manifest.xml,但它不起作用

public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ok=(Button)findViewById(R.id.Button01);  
        ok.setOnClickListener(new View.OnClickListener() {  
            public void onClick(View arg0) { 
                new jsdetails().execute();


                }

        });
    }
    public class jsdetails extends AsyncTask<String,String,String> {

        Boolean validUser = false;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(MainActivity.this);
            pDialog.setMessage("Verifying.. Please wait...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(false);
            pDialog.show();
        }
        protected String doInBackground(String... args) {

            //int valoreOnPostExecute = 0;
            error=(TextView)findViewById(R.id.TextView01);
            un=(EditText)findViewById(R.id.EditText01);  
            pw=(EditText)findViewById(R.id.EditText02); 

            params.add(new BasicNameValuePair("JS_Email",un.getText().toString()));  
            params.add(new BasicNameValuePair("JS_Password",pw.getText().toString()));

            JSONObject json = jParser.makeHttpRequest(url,"POST",params); 
            Log.d("All Products: ", json.toString());
                try {  
             int success = json.getInt(TAG_SUCCESS);
                                 if (success == 1)
                 {
                     validUser = true;

                 }
                                } catch (JSONException e) {
                e.printStackTrace();
            }
                 return null;
        }
        protected void onPostExecute(String file_url) {

            pDialog.dismiss();
            if(validUser)
            {
                Intent i = new Intent(getApplicationContext(), MainActivity.class);
                startActivity(i);
                finish();
            }


             params.clear();
                }
            }

} 
公共类MainActivity扩展活动{
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ok=(按钮)findViewById(R.id.Button01);
ok.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图arg0){
新建jsdetails().execute();
}
});
}
公共类jsdetails扩展了异步任务{
布尔validUser=false;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=新建进度对话框(MainActivity.this);
pDialog.setMessage(“正在验证..请稍候…”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(假);
pDialog.show();
}
受保护的字符串doInBackground(字符串…args){
//int valoreOnPostExecute=0;
错误=(TextView)findViewById(R.id.TextView01);
un=(EditText)findViewById(R.id.EditText01);
pw=(EditText)findViewById(R.id.EditText02);
add(新的BasicNameValuePair(“JS_Email”,un.getText().toString());
add(新的BasicNameValuePair(“JS_密码”,pw.getText().toString());
JSONObject json=jParser.makeHttpRequest(url,“POST”,参数);
Log.d(“所有产品:,json.toString());
试试{
int success=json.getInt(TAG_success);
如果(成功==1)
{
validUser=true;
}
}捕获(JSONException e){
e、 printStackTrace();
}
返回null;
}
受保护的void onPostExecute(字符串文件\u url){
pDialog.disclose();
if(validUser)
{
Intent i=新的Intent(getApplicationContext(),MainActivity.class);
星触觉(i);
完成();
}
参数clear();
}
}
} 

试试这个。。移除
finish()


试试这个。。移除
finish()


必须对UIThread执行查看操作。后台线程上的异步doInBackground方法。您无法在后台线程中获取editText的文本。

您必须在UIThread上执行查看操作。后台线程上的异步doInBackground方法。您无法在后台线程中获取editText的文本。

您在doinbackground()方法中返回null,而在onPostExecute中返回valid user

protected void onPostExecute(String validUser) {

        pDialog.dismiss();
        if(validUser)
        {
            Intent i = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(i);
            finish();
        }


         params.clear();
            }
        }

您将在doinbackground()方法中返回null,而不是在onPostExecute中返回valid user

protected void onPostExecute(String validUser) {

        pDialog.dismiss();
        if(validUser)
        {
            Intent i = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(i);
            finish();
        }


         params.clear();
            }
        }
像这样做

 public class jsdetails extends AsyncTask<String,String,Boolean> {

        Boolean validUser = false;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(MainActivity.this);
            pDialog.setMessage("Verifying.. Please wait...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(false);
            pDialog.show();
        }
        protected Boolean doInBackground(String... args) {

            //int valoreOnPostExecute = 0;
            error=(TextView)findViewById(R.id.TextView01);
            un=(EditText)findViewById(R.id.EditText01);  
            pw=(EditText)findViewById(R.id.EditText02); 

            params.add(new BasicNameValuePair("JS_Email",un.getText().toString()));  
            params.add(new BasicNameValuePair("JS_Password",pw.getText().toString()));

            JSONObject json = jParser.makeHttpRequest(url,"POST",params); 
            Log.d("All Products: ", json.toString());
                try {  
             int success = json.getInt(TAG_SUCCESS);
                                 if (success == 1)
                 {
                     validUser = true;

                 }
                                } catch (JSONException e) {
                e.printStackTrace();
            }
                 return validUser;
        }
        protected void onPostExecute(Boolean validUser) {

            pDialog.dismiss();
            if(validUser)
            {
                Intent i = new Intent(getApplicationContext(), MainActivity.class);
                startActivity(i);
                finish();
            }


             params.clear();
                }
            }

}***
public类jsdetails扩展异步任务{
布尔validUser=false;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=新建进度对话框(MainActivity.this);
pDialog.setMessage(“正在验证..请稍候…”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(假);
pDialog.show();
}
受保护的布尔doInBackground(字符串…args){
//int valoreOnPostExecute=0;
错误=(TextView)findViewById(R.id.TextView01);
un=(EditText)findViewById(R.id.EditText01);
pw=(EditText)findViewById(R.id.EditText02);
add(新的BasicNameValuePair(“JS_Email”,un.getText().toString());
add(新的BasicNameValuePair(“JS_密码”,pw.getText().toString());
JSONObject json=jParser.makeHttpRequest(url,“POST”,参数);
Log.d(“所有产品:,json.toString());
试试{
int success=json.getInt(TAG_success);
如果(成功==1)
{
validUser=true;
}
}捕获(JSONException e){
e、 printStackTrace();
}
返回validUser;
}
受保护的void onPostExecute(布尔validUser){
pDialog.disclose();
if(validUser)
{
Intent i=新的Intent(getApplicationContext(),MainActivity.class);
星触觉(i);
完成();
}
参数clear();
}
}
}***
像这样做

 public class jsdetails extends AsyncTask<String,String,Boolean> {

        Boolean validUser = false;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(MainActivity.this);
            pDialog.setMessage("Verifying.. Please wait...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(false);
            pDialog.show();
        }
        protected Boolean doInBackground(String... args) {

            //int valoreOnPostExecute = 0;
            error=(TextView)findViewById(R.id.TextView01);
            un=(EditText)findViewById(R.id.EditText01);  
            pw=(EditText)findViewById(R.id.EditText02); 

            params.add(new BasicNameValuePair("JS_Email",un.getText().toString()));  
            params.add(new BasicNameValuePair("JS_Password",pw.getText().toString()));

            JSONObject json = jParser.makeHttpRequest(url,"POST",params); 
            Log.d("All Products: ", json.toString());
                try {  
             int success = json.getInt(TAG_SUCCESS);
                                 if (success == 1)
                 {
                     validUser = true;

                 }
                                } catch (JSONException e) {
                e.printStackTrace();
            }
                 return validUser;
        }
        protected void onPostExecute(Boolean validUser) {

            pDialog.dismiss();
            if(validUser)
            {
                Intent i = new Intent(getApplicationContext(), MainActivity.class);
                startActivity(i);
                finish();
            }


             params.clear();
                }
            }

}***
public类jsdetails扩展异步任务{
布尔validUser=false;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=新建进度对话框(MainActivity.this);
pDialog.setMessage(“正在验证..请稍候…”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(假);
pDialog.show();
}
受保护的布尔doInBackground(字符串…args){
//int valoreOnPostExecute=0;
错误=(TextView)findViewById(R.id.TextView01);
un=(EditText)findViewById(R.id.EditText01);
pw=(EditText)findViewById(R.id.EditText02);
add(新的BasicNameValuePair(“JS_Email”,un.getText().toString());
add(新的BasicNameValuePair(“JS_密码”,pw.getText().toString());
JSONObject json=jParser.makeHttpRequest(url,“POST”,参数);
Log.d(“所有产品:,json.toString());
试试{
int success=json.getInt(TAG_success);
如果(成功==1)
{
validUser=true;
}
}抓住(