我正在用java为android编写一个定制的react本机模块,这样我就可以使用back按钮以编程方式将应用程序移到后台。
我正在使用内置的backhandler进行本机响应,但它只提供了一个方法来完全退出应用程序,而不是将应用程序移到后台。
实现后,在我的javascript代码中,我将在此处调用本机模块:
BackHandler.addEventListener('hardwareBackPress', function () {
/**
* call native module here
*/
return true;
}
建议在android上使用back导航按钮将应用程序移到后面,方法是在 MainActivity
如本文所述。但这将导致应用程序在每次按下后退按钮时总是转到后台。由于我想以编程方式将应用程序移到后台,所以我想创建自己的模块,以便随时调用。
我面临的困难是如何将这种方法从 MainActivity
到自定义模块。
到目前为止,我掌握的代码是:
包裹:
package com.myApp;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import java.util.ArrayList;
import java.util.List;
public class MoveAppToBackgroundPackage implements ReactPackage {
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
List<NativeModule> modules = new ArrayList<>();
modules.add(new MoveAppToBackground(reactContext));
return modules;
}
}
模块:
package com.myApp;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReactContext;
public class MoveAppToBackground extends ReactContextBaseJavaModule {
@Override
public String getName() {
return "MoveAppToBackground";
}
private ReactContext mReactContext;
public MoveAppToBackground(ReactApplicationContext reactContext) {
super(reactContext);
mReactContext = reactContext;
}
/* React Methods */
@ReactMethod
public void MoveToBackground() {
Activity activity = mReactContext.getCurrentActivity();
activity.moveTaskToBack(true);
}
}
主要用途:
...
packages.add(new MoveAppToBackgroundPackage());
...
编译应用程序时遇到的错误是:
moveapptobackgroundpackage不是抽象的,并且不重写抽象方法createviewmanagers(reactapplicationcontext)
我如何创建这个方法,我可以调用一个自定义模块,移动应用程序到后台?
1条答案
按热度按时间6mw9ycah1#
好吧,我通过改变
MoveAppToBackgroundPackage.java
这是: