2014-07-06 17 views
5

Ho creato una semplice app che ha bisogno (sì lo fa davvero) di mostrare un avvertimento immersivo. L'ho implementato con un'attività lanciata da un servizio. La maggior parte delle volte mostra correttamente, ma a volte quando il wearable è inattivo non lo fa. onStart() e onResume() vengono eseguiti ma la vista non viene visualizzata sullo schermo. Qualche idea ?La mia attività non viene visualizzata su Android Wear

(Questo è in una marcia Android dal vivo da I/O)

E 'innescato da un servizio da:

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); 

Parte del codice attività: impostazione

@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(); 
} 
+0

Perché il tuo onResume chiama super.onStart()? – MikeC

+0

Auch, non dovrebbe. Sfortunatamente non era questo il vero problema. Vedo ancora lo stesso comportamento. Ma grazie per il tuo aiuto. – frma71

+0

Si prega di aggiornare il codice per correggerne uno (senza super.onStart()). Inoltre mostra la notifica (sul telefono)? Oppure non funziona solo su Wear? –

risposta

3

Try le bandiere in onResume() invece, sembra aver funzionato per me.

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

    // Keep awake 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | 
          WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
} 
Problemi correlati