Android BroadcastReceiver未正确启动活动

Android BroadcastReceiver未正确启动活动,android,android-activity,broadcastreceiver,Android,Android Activity,Broadcastreceiver,我写了一个应用程序,它可以收发短信。实际上,它向一个设备发送一些命令,并从该设备获取答案,以显示给用户。 我将此应用程序的主要活动定义如下: <activity android:name=".MainActivity" android:launchMode="singleTask"> </activity> Intent intent = new Intent(); intent.putExtra("MESSAGE_BODY", sms.getBody(

我写了一个应用程序,它可以收发短信。实际上,它向一个设备发送一些命令,并从该设备获取答案,以显示给用户。 我将此应用程序的主要活动定义如下:

<activity
    android:name=".MainActivity"
    android:launchMode="singleTask">
</activity>
Intent intent = new Intent();
intent.putExtra("MESSAGE_BODY", sms.getBody());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClass(context, MainActivity.class);
context.startActivity(intent);
在sms BroadcastReceiver内部,我使用以下标志\u activity\u NEW\u TASK标志启动此活动:

<activity
    android:name=".MainActivity"
    android:launchMode="singleTask">
</activity>
Intent intent = new Intent();
intent.putExtra("MESSAGE_BODY", sms.getBody());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClass(context, MainActivity.class);
context.startActivity(intent);
问题是

1-有时我会收到3-4条短信,但MainActivity不会启动。如果我接到电话或解锁手机,所有信息都会同时启动应用程序(MainActivity)


2-我想在收到短信后打开屏幕2-3秒,并自动解锁手机,但我不知道如何解锁?

解决方案是使用
唤醒锁
,如下所示“