【问题标题】:Keep app integrity when using asynchronous calls in android在android中使用异步调用时保持应用程序完整性
【发布时间】:2020-05-03 03:35:14
【问题描述】:

我正在尝试通过使用良好的设计原则来保持我的应用程序整洁。我想保持视图、逻辑和数据库层分开。

在我现在正在开发的应用程序上,我有一个主要活动、一个单例、一个逻辑类和一个用于数据库访问的空间。我希望活动告诉逻辑从数据库中获取数据,然后将其加载到单例中。完成后,我需要主要活动来显示单例中加载的数据。

房间使用 LiveData。如何使用 LiveData,然后以某种方式将结果返回给逻辑层,然后将其加载到单例中,并让主 Activity 准备就绪?

更一般地说,我如何从被调用者那里告诉调用者数据在异步时已准备好?比如主Activity调用另一个线程中的一个逻辑类来加载数据,那么这个逻辑类如何让主Activity知道它已经完成了呢?

【问题讨论】:

    标签: android asynchronous android-room


    【解决方案1】:

    您可以使用 Handler 来更新 UI 线程上的主要活动:

    LogicClass.functionThatAccessesRoom() {
    
      //get data from Room
      //...
    
      Handler handler = new Handler(Looper.getMainLooper()) {
        @Override
        public void handleMessage(@NonNull Message msg) {
          //update the UI/views here
        }
      };
      handler.obtainMessage().sendToTarget();
    
    }
    

    【讨论】:

      猜你喜欢
      • 2019-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多