React-native后台进程(android)处理?

时间:2016-04-18 10:20:52

标签: android react-native background-process

如何在后台进程中定期调度console.log()或在Android平台上终止应用程序?

2 个答案:

答案 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