我的Activity在Android Wear上没有显示。

5
我制作了一个简单的应用程序,需要(是的,它确实需要)显示沉浸式警告。我通过从服务启动活动来实现这一点。大部分时间它都能正确显示,但有时当可穿戴设备处于空闲状态时,它不会显示。 onStart() 和 onResume() 都会运行,但视图不会显示在屏幕上。有什么想法吗?(这是在 Android Gear Live 上从 I/O 进行的操作)。它由以下服务触发:
   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();
}

为什么你的onResume调用super.onStart()? - MikeC
很遗憾,它不应该这样。不幸的是,那并不是真正的问题。我仍然看到相同的行为。但还是谢谢你的帮助。 - frma71
请更新代码以更正错误(不包括super.onStart())。通知在手机上是否显示?或者只是在Wear上无法工作? - Michał Tajchert
它只在可穿戴设备上运行。我仍然看到这个问题。 - frma71
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 );
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接