我想使用 Kotlin 在我的
Headless.js
Android 应用程序中实现 React Native
。并希望每 1 分钟运行一次任务。
这是我的代码
App.js
import {AppRegistry} from 'react-native';
import App from './App';
import HeadlessTask from './HeadlessTask';
import {name as appName} from './app.json';
AppRegistry.registerComponent(appName, () => App);
AppRegistry.registerHeadlessTask('SomeTaskName', () => HeadlessTask);
MyTaskService.kt
package com.limcee;
import android.content.Intent
import com.facebook.react.HeadlessJsTaskService
import com.facebook.react.bridge.Arguments
import com.facebook.react.jstasks.HeadlessJsTaskConfig
class MyTaskService : HeadlessJsTaskService() {
override fun getTaskConfig(intent: Intent): HeadlessJsTaskConfig? {
return intent.extras?.let {
HeadlessJsTaskConfig(
"SomeTaskName",
Arguments.fromBundle(it),
5000, // timeout for the task
true // optional: defines whether or not the task is allowed in foreground.
// Default is false
)
}
}
}
AndroidManifest.xml limcee is my package name
<service android:name="com.limcee.MyTaskService" android:enabled="true" android:label="MyTaskService" />
我已按照这些步骤操作,但在让后台任务 (SomeTaskName) 按指定时间间隔运行时遇到问题。目前,它根本不起作用。
如何使用 React Native 中的 Kotlin 确保我的 Headless.js 任务在 Android 后台每分钟运行一次?我的设置中是否需要任何额外的配置或调整
MyTaskService.kt
class MyTaskService : HeadlessJsTaskService() {
override fun getTaskConfig(intent: Intent): HeadlessJsTaskConfig? {
return HeadlessJsTaskConfig(
"SomeTaskName",
Arguments.createMap(),
60000,
true
)
}
}
App.js
import { AppRegistry } from 'react-native';
import App from './App';
import HeadlessTask from './HeadlessTask';
import { name as appName } from './app.json';
AppRegistry.registerComponent(appName, () => App);
AppRegistry.registerHeadlessTask('SomeTaskName', () => HeadlessTask);
AndroidManifest.xml
<service android:name=".MyTaskService" android:enabled="true" android:exported="true" />