gpt4 book ai didi

android - 使用 React-Native 在 android 中捕获 RECEIVE_BOOT_COMPLETED 事件

转载 作者:太空狗 更新时间:2023-10-29 14:38:31 26 4
gpt4 key购买 nike

有什么方法可以在设备启动时触发 react-native 中的事件。我可以在 native 中为 RECEIVE_BOOT_COMPLETED 设置一个广播接收器,但我想知道这将如何触发我用 React Native 编写的事件。有一个 DeviceEventEmitter 监听器,但该监听器将在应用程序关闭时停止。请提出一个方法。

最佳答案

有一次,当我想在 Android 操作系统初始化的同时启动应用程序时,我做了类似的事情。

因此,在这种情况下,您可以只启动主要 Activity (或另一个在您的上下文中有意义的 Activity ),让 react-native 框架完成其余的工作。

这项工作需要三件事:

  1. 创建一个接收器类来处理启动事件并为您做一些事情,在这种情况下:启动主 Activity 以初始化您的应用;
  2. 在您的 AndroidManifest.xml 中注册上面创建的类并添加用户权限以允许 Android 应用程序接收启动事件(不要忘记这一步);
  3. 重新启动您的设备/模拟器并等待您的应用启动。

我的代码:

在我的例子中,我将创建的 BootUpReceiver.java 类放在 MainActivity.java 的同一目录中:

enter image description here

  1. 创建一个名为 BootUpReceiver.java 的类并将“your_package”替换为您的包名称,如下所示:
    package com.your_package;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

import com.your_package.MainActivity;

public class BootUpReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent it = new Intent(context, MainActivity.class);
it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(it);
}
}
  1. 在您的 AndroidManifest.xml 上,放置以下内容,并将 receiver 标签放在您的 application 标签内:
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<receiver
android:enabled="true"
android:name=".BootUpReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>

好吧,我希望这会有所帮助,但如果这还不够,请花点时间查看 React Native 文档的这个链接,其中解释了如何将 Android 服务连接到 JS 任务。

非常简单: https://facebook.github.io/react-native/docs/headless-js-android

关于android - 使用 React-Native 在 android 中捕获 RECEIVE_BOOT_COMPLETED 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52003286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com