【问题标题】:Can I override onCreate() function via cordova plugin我可以通过cordova插件覆盖onCreate()函数吗
【发布时间】:2015-12-17 16:30:35
【问题描述】:

默认情况下,我创建了一个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);
         }
      }

现在我需要在loadUrl(launchUrl) 之前添加一行getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 以防止应用进入睡眠模式。 但是出于某种原因我们不想破坏默认结构,即除了直接插入这行代码之外,我可以使用cordova插件单独覆盖onCreate()函数吗?

或者有没有人有想法来实现让您的应用始终处于领先地位的目标?

【问题讨论】:

    标签: android cordova plugins


    【解决方案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));
            }
          });
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多