繁体   English   中英

onPostExecute()之后新的意图没有开始

[英]new intent not getting started after onPostExecute()

这是一个做我的后台活动的Java文件,在onPostExecute()中,我添加了一个启动的意图,但是它不起作用,这个后台类只是一个Java文件,而不是任何活动的Java文件。

public class background extends AsyncTask<String,Void,String> {

    private ProgressDialog dialog;
    private ConnectivityManager cm;
    String jsonurl, jsonstring;
    mobile_form mform;
    private  Context context;



    background (Context ctx){
        this.context = context.getApplicationContext();
        this.cm = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
        this.dialog = new ProgressDialog(ctx);
        mform = new mobile_form();
    }

        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);
        }

        @Override
        protected void onPostExecute(String result) {
           context.startActivity(new Intent(context, mobile_form.class));
           NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
            boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
            if (isConnected) {
                if (dialog.isShowing())
                    dialog.dismiss();
            }

        }
public class background extends AsyncTask<String,Void,String> {

    private ProgressDialog dialog;
    private ConnectivityManager cm;
    String jsonurl, jsonstring;
    mobile_form mform;
    private  Context context;

    public background (Context ctx){
        this.context = ctx;
        this.cm = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
        this.dialog = new ProgressDialog(ctx);
        mform = new mobile_form();
    }

    //...
    // doInBackground()
    //...

        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);
        }

        @Override
        protected void onPostExecute(String result) {
           NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
            boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
            if (isConnected) {
                if (dialog.isShowing())
                    dialog.dismiss();
            }
            context.startActivity(new Intent(context, mobile_form.class));
        }

要使用此AsynkTask:

new background(getApplicationContext()).execute();

您可以按如下所示操作,以解决您的问题。公共类背景扩展了AsyncTask {

private ProgressDialog dialog;
private ConnectivityManager cm;
String jsonurl, jsonstring;
mobile_form mform;
private  mContext context;

public background (Context ctx){
    this.mContext = ctx;
    this.cm = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
    this.dialog = new ProgressDialog(ctx);
    mform = new mobile_form();
}

//...
// doInBackground()
//...

    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }

    @Override
    protected void onPostExecute(String result) {
       NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
        if (isConnected) {
            if (dialog.isShowing())
                dialog.dismiss();
        }
        mContext.startActivity(new Intent(mContext, mobile_form.class));
    }

将此后台任务称为

new background(this).execute();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM