Android Wearable在AsyncTask中传递DataMap

时间:2015-02-20 04:49:34

标签: android android-asynctask wear-os

我正在开发一款应用,可以在可穿戴的Android Wear和手机之间不断进行通信。涉及两者之间沟通的事件的基本进展如下:

  1. 手机在DataMap中发送可穿戴数据,并等待DataLayerListener事件。
  2. Wearable等待接收数据并在计算后使用DataMap中的一段数据进行响应,然后等待另一个DataLayerListener事件。
  3. 手机从可穿戴设备接收数据,经过一些计算重复1-3次。
  4. 我的问题是,最好使用AsyncTask执行此操作,以便UI线程不会等待响应吗?如果这是最好的解决方案,我应该在每次运行任务时创建一个新的GoogleApiClient,还是在onPreExecute()中创建一次或尝试从MainActivity获取客户端?

1 个答案:

答案 0 :(得分:0)

正如Paresh所说,在我看来,服务要好得多,因为它可以运行直到你想要,而且每次创建AsyncTask时都没有必要创建一个新的GoogleApiClient,只需要有一个。< / p>

关于第二个问题,我在我的应用程序中做的是:创建服务,当onStartCommand(Intent intent,int flags,int startId)时,创建GoogleApiClient。连接客户端时,会向其添加相应的侦听器。

最后一部分的一个例子:

@Override //ConnectionCallbacks
public void onConnected(Bundle connectionHint) {
    Log.d(TAG, "Google API Client connected");

    Wearable.DataApi.addListener(mGoogleApiClient, this);
    Wearable.MessageApi.addListener(mGoogleApiClient, this);

    startDataExchange();
}