我正在开发NativeScript android应用程序。我是NativeScript的新手。我想运行后台服务,即定期检查服务并向用户发送通知,即使应用程序未在设备上打开。我按照Nativescript网站的说明 https://www.nativescript.org/blog/using-android-background-services-in-nativescript
但是当我调用setupAlarm函数时,我收到错误无法实例化类com.tns.notifications.NotificationIntentService;没有空构造函数
请帮帮我。我在下面提供完整的例外情况
The application crashed because of an uncaught exception. You can look at "stackTrace" or "nativeException" for more detailed information about the exception.
An uncaught Exception occurred on "main" thread.
java.lang.RuntimeException: Unable to instantiate service com.tns.notifications.NotificationIntentService: java.lang.InstantiationException: can't instantiate class com.tns.notifications.NotificationIntentService; no empty constructor
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2543)
at android.app.ActivityThread.access$1800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.InstantiationException: can't instantiate class com.tns.notifications.NotificationIntentService; no empty constructor
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1208)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2540)
... 10 more
答案 0 :(得分:2)
要解决no empty constructor
问题,您可以像这样使用nativescript-android-utils:
安装:强>
npm install nativescript-android-utils --save
在你的代码中:
com.pip3r4o.android.app.IntentService.extend("com.mypackage.MyClass", {
onHandleIntent: function(){}
});
现在,com.mypackage.MyClass
将有一个空的构造函数。
答案 1 :(得分:1)
我从这里找到了工作的nativescript android后台服务项目 https://github.com/NativeScript/sample-android-background-services
答案 2 :(得分:0)
最新版本的Nativescript允许您使用workers for multithreading applications。我相信这是你应该使用的。在您提供的教程中,他们还提到将来使用Web worker。
下一步是什么
在即将发布的版本中,我们将推出对Web的支持 工作者在NativeScript中具有功能,允许您在一个中执行代码 后台线程,全部通过Angular / JavaScript。
希望它有所帮助。