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 473 2
    幻影~ · 安卓
    2024-04-26 19:25 7 4
    deanhu · AOSP
    2024-04-25 21:53 3 10
    幻影~ · 提问
    2024-04-13 20:13 10 2
    幻影~ · 找工作
    2024-04-07 10:44 17 2
    幻影~ · 问题
    2024-03-31 17:20 7 2
    TONYGFX · AOSP
    2024-03-28 17:11 4 2