如何在后台进程中定期调度console.log()或在Android平台上终止应用程序?
答案 0 :(得分:2)
您需要创建将在后台运行的自定义Java模块。例如:
@ReactMethod
public void startTimeTasks(Integer delay1, Integer delay2) {
if (timer != null) {
timer.cancel();
timer.purge();
}
timer = new Timer();
timer.schedule(new TimeTask(), delay1);
timer.schedule(new TimeTask(), delay2);
}
@ReactMethod
public void cancelTimeTasks() {
if (timer != null) {
timer.cancel();
}
}
@Override
public String getName() {
return "MyCustomModule";
}
class TimeTask extends TimerTask {
public void run() {
//do something
}
}
然后在JS中调用:
//run background task after 300000 and 240000 milliseconds
NativeModules.MyCustomModule.startTimeTasks(300000, 240000);
//stop this background task
NativeModules.MyCustomModule.cancelTimeTasks();
这是我的情况,但基于它可以做任何事情
答案 1 :(得分:-2)
您可以在JS中使用setInterval定期运行某些内容。
//run our function every 1000 MS
setInterval(() => {console.log('something'); }, 1000);
但JS中并没有真正的“背景”概念。我不确定你是否可以从JS挂钩应用程序生命周期事件,你当然可以使用Native代码。 https://facebook.github.io/react-native/docs/embedded-app-android.html