簡體   English   中英

startForeground()導致cordova出現問題

[英]startForeground() causing problems with cordova

我在我的cordova app中使用了一個服務,它在onCreate中生成一個startForeground通知。 如果應用程序通過滑動被殺死並再次啟動,則不會再觸發cordova設備就緒事件。 當應用程序重新啟動時,似乎沒有定義cordova對象本身。 我收到以下錯誤消息:

E/Web Console(19472): Uncaught TypeError: Object #<Object> has no method 'exec' at file:///android_asset/www/src/jsFile.js:31

第31行及以下:

cordova.exec(function (r) {
            if (callback) {
                callback(r);
            }
        }, function (err) {
            if (callback) {
                callback(false);
            }
        }, "Plugin", "functionName", []); 

只有在我的服務中使用startForeground時才會出現問題,如果我對代碼的這一部分進行評論,那么它的工作正常。 我迫切需要一些關於這些問題的幫助:

  • 是否可以手動運行cordova?
  • 如何使用startForeground啟動服務,但在殺死並重新啟動應用程序后仍然會觸發cordova設備就緒

編輯:

在做了兩個快速示例項目之后,一個在Cordova 3.6(我用於我的實際應用程序的版本)和Cordova 5.1上,我意識到新Cordova版本中不會出現問題。 但是我真的不想更新,因為:

  • 切勿觸摸正在運行的系統
  • 我不知道在Never版本中可能不起作用的東西,因為我在我的App中安裝了很多插件。
  • 我很懶。

知道什么可以從3.6改為5.1解決了這個bug,以及我是否可以相應地更新我的3.6代碼?

EDIT2:

不是 這個問題的重復。 在這個問題中錯誤地傳遞了deviceReady回調。 在我的應用程序中不是這種情況,只有在我的服務中不使用startForeground時才工作是沒有意義的。

您的應用生命周期似乎存在問題。 當您滑動或強行關閉應用程序時,應用程序進程將被終止,因此如果您未在狀態包中保存依賴對象或變量,則重新啟動時它們將返回null,因為活動假定這些內容可用。 你可以將你在onCreate()的代碼粘貼到你定義的cordova那里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM