在Android Wear中连接到Google Play服务时出现明显的延迟

时间:2014-09-15 17:29:09

标签: android wear-os android-wear-data-api

问题:

从应用程序在可穿戴设备上启动到启动DatalayerService的时间点,有一个明显的延迟 - 大约40-50秒。

证据:

09-15 10:19:09.594 455-475 /? I / ActivityManager:显示com.test.watches/.WatchfaceActivity:+ 860ms

09-15 10:20:05.104 1775-1775 /? V / Watchface:启动Google api客户端

09-15 10:20:05.234 1775-1775 /? V / Watchface:在onCreate()

上调用google api客户端上的连接

从时间戳开始,从用户启动可穿戴设备上的应用程序到数据传输开始的时间,显然有大约55秒的延迟。

这是不可接受的,因为用户只会假设代码有问题。

我的代码看起来像是典型的工作流程。连接建立后 - 事情运行顺利,但是,在启动或全新安装应用程序时,连接到数据层需要永远!

我的代码:

public class DataLayerListenerService extends WearableListenerService {

    private static final String TAG = "Watchface";

    GoogleApiClient mGoogleApiClient;

    @Override
    public void onCreate() {
        super.onCreate();
        Log.v("Watchface", "Starting up Google api client");

        mGoogleApiClient = new GoogleApiClient.Builder(getApplicationContext())
                            .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
                                @Override
                                public void onConnected(Bundle connectionHint) {
                                    Log.i(TAG, "onConnected: " + connectionHint);
                                }

                                @Override
                                public void onConnectionSuspended(int cause) {
                                    Log.i(TAG, "onConnectionSuspended: " + cause);
                                }
                            })
                            .addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
                                @Override
                                public void onConnectionFailed(ConnectionResult result) {
                                    Log.i(TAG, "onConnectionFailed: " + result);
                                }
                            })
                            .addApi(Wearable.API)
                            .build();
        mGoogleApiClient.connect();
        Log.v("Watchface", "Called connect on google api client in onCreate()");

    }

此时我正在考虑在我的主要活动的onCreate()中手动启动DataLayerListenerService。我不认为这是推荐的做法 - 但我不确定我是否有很多选择。

0 个答案:

没有答案