默认情况下,在我创建一个cordova android项目后,MainActivity.java看起来像这样:
import android.os.Bundle;
import org.apache.cordova.*;
public class MainActivity extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Set by <content src="index.html" /> in config.xml
loadUrl(launchUrl);
}
}
现在我需要在getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
之前添加一行loadUrl(launchUrl)
,以防止该应用进入睡眠模式。
但是出于某种原因我们不想破坏默认结构,也就是说,除了直接插入这行代码之外,我可以单独使用cordova插件覆盖onCreate()
函数吗?
或者有没有人有想法实现让您的应用始终站在前面的目标?
答案 0 :(得分:1)
在这里,我找到了一个解决方案,对我来说很好。
public class KeepAwake extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("keepAwake")) {
this.keepAwake(callbackContext);
return true;
}
return false;
}
private void keepAwake(final CallbackContext callbackContext){
cordova.getActivity().runOnUiThread(
new Runnable() {
public void run() {
cordova.getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK));
}
});
}
}