0

Je veux aller à une activité particulière après que l'écran est allumé en utilisant WakefulBroadcastReceiver. l'écran s'allume correctement, mais il n'effectue aucune action après cela, et ne montre même pas d'exception.Comment accéder à une activité particulière après l'activation de l'écran à l'aide de WakefulBroadcastReceiver?

Voici mon code.

AndroidManifest.xml

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<receiver android:name=".Alarm" /> 

Java Fichier

public class Alarm extends WakefulBroadcastReceiver { 

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

     PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 
     if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT_WATCH) { 
      isScreenOn = powerManager.isInteractive(); 
     } 
     else 
     { 
      isScreenOn = powerManager.isScreenOn(); 
     } 
     if(!isScreenOn) 
     { 
      PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK |PowerManager.ACQUIRE_CAUSES_WAKEUP |PowerManager.ON_AFTER_RELEASE,"Remind Me"); 
      wakeLock.acquire(); 
      Intent gotoIntent; 
      gotoIntent = new Intent(context, MainActivity.class); 
      gotoIntent.putExtra(ReminderActivity.EXTRA_REMINDER_ID, Integer.toString(mReceivedID)); 
      context.startActivity(gotoIntent); 
     } 
} 
+0

Est-ce que votre broadcastreceiver est enregistré dans votre fichier manifeste? – GrIsHu

+0

@GrIsHu oui, c'est enregistré. –

Répondre

0

Vous avez une réponse parfaite pour ma propre question: que je viens d'utiliser gotoIntent.addFlags (intention FLAG_ACTIVITY_NEW_TASK. lors de la création de l'intention

Intent gotoIntent; 
    gotoIntent = new Intent(context, MainActivity.class); 
    gotoIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    gotoIntent.putExtra(ReminderActivity.EXTRA_REMINDER_ID, Integer.toString(mReceivedID)); 
    context.startActivity(gotoIntent);