qq_30895577 2019-06-17 20:51 采纳率: 100%
浏览 349
已结题

如何使用AsyncTask 创建Toast?

如何使用AsyncTask 创建Toast?

 @SuppressLint("StaticFieldLeak")
    private class RegistrationSuccess extends AsyncTask {
        @Override
        protected Object doInBackground(Object[] objects) {
            return null;
        }

        @Override
        protected void onPreExecute() {
            registerButton.setText("注册成功");
//            Toast.makeText(Register.this, "注册成功", Toast.LENGTH_SHORT).show();
            super.onPreExecute();
        }
    }

代码中的

    Toast.makeText(Register.this, "注册成功", Toast.LENGTH_SHORT).show();

不生效~~~

调用处的代码是OnCreate的一段

 new Thread() {
                        public void run() {
                            try {
                                astr = futureTask.get();
                                Log.e("HelloWorldActivity", astr);
                                if (astr.equals("OK")) {
                                    Log.e("HelloWorldActivity", astr);
                                    RegistrationSuccess registrationSuccess = new RegistrationSuccess();
                                    registrationSuccess.execute();
                                }
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }
                    }.start();//开启线程
  • 写回答

2条回答 默认 最新

  • YDimanche 2019-06-18 10:22
    关注

    AsyncTask本身就是一种异步,然后你又讲它放入一个线程中,这个时候你在AsyncTask中进行toast显示相当于在子线程中进行更新UI的操作,不闪退已经不错了,
    这个解决方案有两种,在启动AsyncTask时直接去掉new Thread(强烈推荐),或者在主线程中创建一个handler,然后在AsyncTask中通过message发送消息至主线程中
    的handler中进行toast操作

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮