Android Wear:它在活动生命周期中是如何工作的?
我制作了一个带有活动的可穿戴应用程序Android Wear:它在活动生命周期中是如何工作的?,android,android-activity,wear-os,android-sensors,activity-lifecycle,Android,Android Activity,Wear Os,Android Sensors,Activity Lifecycle,我制作了一个带有活动的可穿戴应用程序 @Override protected void onCreate(Bundle savedInstanceState) { Log.i("WEAR", "CREATE"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final WatchViewStub stub = (WatchViewStub) findView
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i("WEAR", "CREATE");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
@Override
public void onLayoutInflated(WatchViewStub stub) {
mTextView = (TextView) stub.findViewById(R.id.text);
}
});
SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
Sensor hrs = sm.getDefaultSensor(Sensor.TYPE_HEART_RATE);
sm.registerListener(hrListener, hrs, 3);
if (savedInstanceState != null) {
Log.i("WEAR", "RESTORE");
// ... get previous sensor data from the bundle
}
}
@Override
protected void onStop() {
Log.i("WEAR", "STOP");
super.onStop();
sm.unregisterListener(hrListener, hrs);
}
@Override
protected void onDestroy() {
Log.i("WEAR", "DESTROY");
super.onDestroy();
}
@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
Log.i("WEAR", "SAVE");
// ... save sensor data in the bundle
super.onSaveInstanceState(savedInstanceState);
}
private SensorEventListener hrListener = new SensorEventListener() {
@Override
public void onSensorChanged(final SensorEvent event) {
final float hearRate = event.values[0];
Log.i("SENSOR", hearRate);
mTextView.setText(Float.toString(hearRate));
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
当它启动时,我看到来自传感器的数据流。
过了一会儿,屏幕返回到时钟表面,日志显示停止并保存我的应用程序调试流。我重新启动应用程序,但捆绑包为空,我丢失了捆绑包中保存的所有数据onDestroy
从未被调用,所以为什么我没有得到任何捆绑包?
这是一个齿轮活动。关闭磨损应用程序的操作应该是从左向右滑动以关闭它。您将看到调用了
ondestory
。
如果你只是按下按钮(我只有一个moto 360第一代,即侧按钮),这就像只是把应用程序放在前台。所以只需调用
onStop
和onStart
对。希望这个迟来的答案仍能对您有所帮助。您需要通过从左向右滑动或长按来添加和完成应用程序(需要为相同的内容编写代码)。调用finish后,将调用onDestroy 你有活动启动模式的特殊设置吗?没有,我有Android Studio创建的默认设置。你需要提供更多信息。清单和类扩展的内容。它扩展AppCompatActivity,清单是项目创建的默认清单