问题:
从可穿戴设备上启动应用程序到启动 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。我不认为这是推荐的做法 - 但我不确定我是否有很多选择。