5

我制作了一个简单的应用程序,它需要(是的,确实如此)显示身临其境的警告。我已经通过从服务启动的活动实现了这一点。大多数情况下它显示正确,但有时当可穿戴设备空闲时它不会。onStart() 和 onResume() 运行,但视图未显示在屏幕上。有任何想法吗 ?

(这是来自 I/O 的 Android Gear Live)

它由以下服务触发:

   Intent i = new Intent(MyService.this, MyActivity.class);
   i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
   i.setAction("disconnected");
   startActivity(i);

部分活动代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d("MyActivity", "onCreate");
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON|
                         WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
                         WindowManager.LayoutParams.FLAG_FULLSCREEN |
                         WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
                         WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    setContentView(R.layout.activity);
    disconnectedView = (TextView)findViewById(R.id.disconnectedView);
}
@Override
protected void onStart() {
    super.onStart();
    Log.d("MyActivity", "onStart");
}
@Override
protected void onResume() {
    // Corrected after comment from MikeC
    //super.onStart();
    super.onResume();
    Log.d("MyActivity", "onResume");
    if (getIntent().getAction() != null && getIntent().getAction().equals("disconnected"))
        startVibration();
}
4

1 回答 1

3

尝试设置标志onResume(),似乎对我有用。

@Override
public void onResume()
{
    super.onResume();

    // Keep awake
    getWindow().addFlags( WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
                          WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON );
}
于 2014-09-02T13:13:44.980 回答