我有一个fragmentActivity(公共类WearRunActivity扩展了FragmentActivity),我希望它始终在屏幕上显示。
我无法设置AmbientEnabled();因为它不是一个可穿戴的活动....
如何保持我的应用
答案 0 :(得分:1)
您可以设置一个标记来保持您的活动:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
但是,要非常小心并注意用户的电池消耗。只要您不需要通过调用
来保持活动,就可以清除此标记getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
答案 1 :(得分:0)
您应该实施AmbientMode.AmbientCallbackProvider
回调而已。
这是新的首选方法,它仍然为您提供WearableActivity给您的所有内容,但也允许您使用Activity
(或任何子类...... FragementActivity等)。
Official docs call out the details (and example code):
public class MainActivity extends Activity implements AmbientMode.AmbientCallbackProvider {
/*
* Declare an ambient mode controller, which will be used by
* the activity to determine if the current mode is ambient.
*/
private AmbientMode.AmbientController mAmbientController;
…
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
mAmbientController = AmbientMode.attachAmbientSupport(this);
}
...
…
@Override
public AmbientMode.AmbientCallback getAmbientCallback() {
return new MyAmbientCallback();
}
…
private class MyAmbientCallback extends AmbientMode.AmbientCallback {
@Override
public void onEnterAmbient(Bundle ambientDetails) {
// Handle entering ambient mode
}
@Override
public void onExitAmbient() {
// Handle exiting ambient mode
}
@Override
public void onUpdateAmbient() {
// Update the content
}
}