2015-12-17 33 views
0

默認情況下,我創建了一個科爾多瓦Android項目後,該MainActivity.java看起來是這樣的:我可以覆蓋的onCreate()通過科爾多瓦插件功能

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()函數?

或者有沒有人有一個想法來實現你的應用總是在前面的目標?

回答

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)); 
     } 
     }); 
    } 
}