0
  • 这个网友,跨进程通信的时候,走的是子线程,请不要在子线程操作ui,比如更新text,toast等等

    1139423796017500160  评论     打赏       断点-含光君
    • 我也遇到了这个问题,解决了,

      通过Log.d(TAG, "当前线程: "+ Thread.currentThread());来判断当前线程,UI的更新和Toast不能在子线程中处理。
      
      runOnUiThread(new Runnable
          @Override
          public void run() {}
      });
      将要放入主线程中的操作放在这个函数里。问题解决
      r如下:
      public class callBackPay extends ThirPartPayResult.Stub{
      
          @Override
          public void onPaySuccess() {
              //支付成功,修改UI上的内容
              //在实际的开发中,这里是去修改数据库的内容,其实支付宝是通过回调的URL的地址,通知我们的服务器的,然后我们请求服务器更新数据
              //记得对mIAliPayADIL进行判空
              Log.d(TAG, "当前线程: "+ Thread.currentThread());
              if (mIAliPayADIL != null) {
                  runOnUiThread(new Runnable() {
                      @Override
                      public void run() {
                          Log.d(TAG, "当前线程:: "+ Thread.currentThread());
                          mCount.setText("100.00");
                          Toast.makeText(MainActivity.this, "充值成功", Toast.LENGTH_SHORT).show();
                      }
                  });
      
              }
      
          }
      


      1523239512988192769  评论     打赏       GTxhy
      • GTxhy  回复 @GTxhy
        D/MainActivity: onPaySuccess: Thread[Binder:12501_2,5,main] D/MainActivity: onPaySuccess: Thread[main,5,main] 打印出来的两个线程信息
        GTxhy 2022-05-18 16:34   回复 1523239512988192769
    相关问题
    木林森 · Aidl
    2020-02-24 16:19 478 2
    资质平平 · Android
    2025-02-20 09:14 92 100
    尖沙咀-段坤 · 项目
    2025-01-06 23:39 18 2
    雅澤yaduo · 领券联盟
    2025-01-03 20:39 37 50
    呆瓜小董 · webview
    2024-11-30 18:02 68 20
    阿肥 · 鸿蒙next
    2024-10-25 18:07 35 100
    尖沙咀-段坤 · 安卓
    2024-09-11 11:03 31 2
    YanLQ · AOSP
    2024-08-10 11:57 35 100
    断点 · vue
    2024-08-08 10:05 79 30