在Android OS 9中的启动完成的BroadcastReceiver的onReceive中启动活动

时间:2019-03-15 07:47:55

标签: android broadcastreceiver bootcompleted

即使使用Intent,该活动也不会从启动完成的广播接收器的onReceive开始。FLAG_ACTIVITY_NEW_TASK仍然没有帮助,并且仍然会出现相同的错误。

由以下原因引起:android.util.AndroidRuntimeException:从Activity上下文外部调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志。这真的是您想要的吗?

public void onReceive(Context context, Intent intent) {
super.onReceive(context,intent);
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) || 
  intent.getAction().equals(Intent.ACTION_LOCKED_BOOT_COMPLETED)){
  Intent mainActivityIntent = MainActivity.newIntent(context);
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  context.startActivity(mainActivityIntent);} 
}

1 个答案:

答案 0 :(得分:0)

您正在为其他意图设置标志。
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

return (
  <Layout>    
    {posts.map(({ node }, index) => {
      if (index % 2 === 0) {
        return (
           <div key={index}>
            <p>{node}</p>
            {posts[index + 1] && <p>{posts[index + 1].node}</p>}
           </div>
        )
      }
    })
    }
  </Layout>
)