在Android Wear中连接Google Play服务时出现明显滞后

在Android Wear中连接Google Play服务时出现明显滞后,android,wear-os,android-wear-data-api,Android,Wear Os,Android Wear Data Api,问题: 从在可穿戴设备上启动应用程序到启动DatalayerService,有一个明显的延迟,大约40-50秒 证据: 09-15 10:19:09.59445-475/?I/ActivityManager﹕ 显示的com.test.watchs/.WatchfaceActivity:+860ms 09-15 10:20:05.104 1775-1775/?V/表盘﹕ 启动GoogleAPI客户端 09-15 10:20:05.234 1775-1775/?V/表盘﹕ 在onCreate()中的

问题:

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

证据:

09-15 10:19:09.59445-475/?I/ActivityManager﹕ 显示的com.test.watchs/.WatchfaceActivity:+860ms

09-15 10:20:05.104 1775-1775/?V/表盘﹕ 启动GoogleAPI客户端

09-15 10:20:05.234 1775-1775/?V/表盘﹕ 在onCreate()中的google api客户端上调用connect


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

这是不可接受的,因为用户会简单地假设代码有缺陷

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

我的代码:

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

您可以将onCreate-to-api连接代码发布吗?从日志来看,您的代码中似乎有什么东西导致了主threadPosted代码的延迟。看起来很标准-顺便说一句,我还添加了一条评论,看看你是否可以手动启动DataLayerListenerService,如果你愿意的话。尝试在build()和connect()之间添加一个日志,只是为了确保问题在网络上,而不是基于上面的日志的builderWell上,这是不可能的。09-15 10:20:05.104 1775-1775/? V/表盘﹕ 启动谷歌api客户端09-15 10:20:05.234 1775-1775/?V/表盘﹕ 在onCreate()中,在google api客户端上调用connect时,除了几秒钟的差异外,几乎没有其他差异。
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()");

    }