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 に答える