Android登录线程



我是Android新手。

我有一个UI线程,用户点击"Login"。一旦他们点击登录,就会创建一个线程(Android的AsyncTask),该线程会访问互联网(HTTPPost)并验证输入。还有一个"进度条"。现在我的问题是,我如何回到活动(UI线程?),所以我可以关闭并启动一个新的活动。

我想到的一个天真的想法是让AsyncTask类成为Activity的子类。这样,在"onPostExecute"方法中,我可以完成活动。

有合适的方法来做这件事吗?

您可以在contructor of asyntask中传递活动的context,在onPostExecute中您可以从那里通过其contextstartActivity关闭该活动。

public class MyAsyn extends AsyncTask<String, Void, Void>{
public MyAsyn(Context con) {
    context = con;
}
}
然后在onPostExecute中执行
i = new Intent(context,AnotherActivity.class);
                    context.startActivity(i);
                    ((Activity) context).finish();

在异步任务中调用此方法

protected void onPostExecute(String result) {
        if(progressDialog!=null&&progressDialog.isShowing()){
            progressDialog.dismiss();
        }

    }

在AsyncTask的postexecute方法中调用startActivity。这将返回到Activity类

是的,你可以把Asynctask作为Activity的内部类,并在onPostExecute中使用startActivity。

如果它在一个独立的。java文件中,那么你可以将上下文传递给asynctask和startActivity的构造函数

或者你可以使用interface作为Activity的回调,并在Activity本身中启动Activity。你也可以使用Handler。

我如何从AsyncTask返回布尔值?

相关内容

  • 没有找到相关文章

最新更新