0

我想在使用WakefulBroadcastReceiver打开屏幕后进入特定活动。屏幕正常打开,但之后没有执行任何操作,甚至没有显示任何异常。如何使用WakefulBroadcastReceiver打开屏幕后进入特定活动?

以下是我的代码。

AndroidManifest.xml中

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

Java文件

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

您的broadcastreceiver是否在您的清单文件中注册? – GrIsHu

+0

@GrIsHu是的,它已注册。 –

回答

0

得到了完美的答案我自己的问题: 我只需要使用gotoIntent.addFlags(意向FLAG_ACTIVITY_NEW_TASK。 )同时创建意图

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); 
相关问题