2012-03-17 10 views
6

Così ho il mio comando onResume che riavvia un thread interrotto che esegue il mio ciclo di gioco. Questo funziona perfettamente per riprendere l'applicazione quando si chiude il pulsante Home o concentrandosi su un'altra app. Tuttavia, quando si spegne e riaccende lo schermo, il comando delle attività onResume si attiva immediatamente prima che la schermata venga sbloccata. Ho bisogno della mia attività per sapere quando lo schermo è sbloccato in modo che possa riavviare il thread al momento opportuno.Gestione attività quando lo schermo è sbloccato

Qualcuno ha mai avuto questo successo prima?

risposta

16

per rilevare schermo e schermare registrare un reciver trasmissione come:

AndroidManifest.xml:

<receiver android:name="receiverScreen"> 
     <intent-filter> 
      <action android:name="android.intent.action.SCREEN_ON" /> 
      <action android:name="android.intent.action.SCREEN_OFF" /> 
<action android:name="android.Intent.ACTION_USER_PRESENT" /> 
     </intent-filter> 
    </receiver> 

In attività o servizio:

try { 
       IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON); 

       filter.addAction(Intent.ACTION_SCREEN_OFF); 
filter.addAction(Intent.ACTION_USER_PRESENT); 

       BroadcastReceiver mReceiver = new receiverScreen(); 

       registerReceiver(mReceiver, filter); 
     } catch (Exception e) { 

     } 

ricevitore codice in cui il sistema informa se lo schermo si accende o si spegne:

public class receiverScreen extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)){ 

     } 
     if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)){ 

     } 
if (intent.getAction().equals(Intent.ACTION_USER_PRESENT)){ 

     } 
    } 

    } 
+0

Sembra che il codice per AndroidManifest.xml non sia stato incluso. – louielouie

+0

molto utile, tuttavia ACTION_SCREEN_OFF viene eseguito solo quando lo schermo è acceso e appare la schermata di sblocco, ho bisogno di questo per eseguire quando lo schermo di sblocco si sblocca e scompare – tantonj

+0

@tantonj quindi registrati su più ricevitore BroadcastReceiver 'Intent.ACTION_USER_PRESENT' –