I created a plugin for the background service (to run the application in the background) in the phone table.
here is my java code for the plugin:
public class BackgroundService extends Plugin { @Override public PluginResult execute(String action, JSONArray args, String callbackId) { PluginResult.Status status = PluginResult.Status.OK; String result = ""; try { if (action.equals("onCreate")) { this.onCreate(); } else if (action.equals("onBind")) { Intent intent = null; this.onBind(intent); } else if (action.equals("onDestroy")) { this.onDestroy(); } else if (action.equals("onStart")) { Intent intent = null; this.onStart(intent,args.getInt(1)); } else if (action.equals("onUnbind")) { Intent intent = null; this.onUnbind(intent); } return new PluginResult(status, result); } catch(JSONException e) { return new PluginResult(PluginResult.Status.JSON_EXCEPTION); } } public void onCreate() {
and my js file:
function BackgroundService() { }; BackgroundService.prototype.create = function() { PhoneGap.exec(null, null, "BackgroundService", "onCreate", []); }; BackgroundService.prototype.destroy = function() { PhoneGap.exec(null, null, "BackgroundService", "onDestroy", []); }; BackgroundService.prototype.start = function(intent,startId) { PhoneGap.exec(null, null, "BackgroundService", "onStart", [intent,startId]); }; BackgroundService.prototype.bind = function(intent) { PhoneGap.exec(null, null, "BackgroundService", "onBind", [intent]); }; BackgroundService.prototype.unbind = function(intent) { PhoneGap.exec(null, null, "BackgroundService", "onUnbind", [intent]); }; PhoneGap.addConstructor(function() { PhoneGap.addPlugin("BackgroundService", new BackgroundService()); });
and in my index.html. I added the code below by clicking the button
navigator.BackgroundService.onCreate (); navigator.BackgroundService.onStart (intent, 1);
My mistake:
ERROR/AndroidRuntime(14981): FATAL EXCEPTION: main ERROR/AndroidRuntime(14981): java.lang.RuntimeException: Unable to instantiate service com.app.newly.BackgroundService: java.lang.ClassCastException: com.app.newly.BackgroundService ERROR/AndroidRuntime(14981):at android.app.ActivityThread.handleCreateService(ActivityThread.java:2943) ERROR/AndroidRuntime(14981):at android.app.ActivityThread.access$3300(ActivityThread.java:125) ERROR/AndroidRuntime(14981): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2087) ERROR/AndroidRuntime(14981): at android.os.Handler.dispatchMessage(Handler.java:99) ERROR/AndroidRuntime(14981): at android.os.Looper.loop(Looper.java:123) ERROR/AndroidRuntime(14981): at android.app.ActivityThread.main(ActivityThread.java:4627) ERROR/AndroidRuntime(14981): at java.lang.reflect.Method.invokeNative(Native Method) ERROR/AndroidRuntime(14981): at java.lang.reflect.Method.invoke(Method.java:521) ERROR/AndroidRuntime(14981): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) ERROR/AndroidRuntime(14981): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) ERROR/AndroidRuntime(14981): at dalvik.system.NativeStart.main(Native Method) ERROR/AndroidRuntime(14981): Caused by: java.lang.ClassCastException: com.app.newly.BackgroundService ERROR/AndroidRuntime(14981): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2940) ERROR/AndroidRuntime(14981): ... 10 more
If I deleted startService (new Intent (this, MyService.class)); from java file, I got the following error:
ERROR/Web Console(4785): ReferenceError: Can't find variable: SqlitePlugin at file:///android_asset/www/BackgroundService.js:31 ERROR/Web Console(4785): TypeError: Result of expression 'window.plugins.SqlitePlugin' [undefined] is not an object. at file:///android_asset/www/index.html:26
Otherwise, I cannot start the application. I get an error in a java file. Getting a red label (for example, " X ") in the left corner of this line is' startService (new Intent (this, MyService.class)); please tell me where I am wrong, please guide me, thanks in advance.
I get an error when starting the service. When I move the cursor to startService, I get the create method "startService (intent)"
And I have doubts about this plugin, I can run javascript in the background or not. If possible, how to get a warning in background.please, tell me where I am wrong, please help me, thanks in advance.