Запустите обновление приложения для Android с помощью cordova-webintent и принудительной остановки

Шаги:1) Открытое приложение для Android (построено с cordova)

2) Тогда я позвонил cordova-webintent для установки обновлений https://github.com/Initsogar/cordova-webintent

3) Я нажал "Установить", и он начал установку, но через несколько секунд приложение остановилось и закрылось вместо установки и открытия обновленного приложения.

Эта проблема появилась некоторое время назад, и я не могу понять, почему это произошло, из-за той же версии cordova-webintent а также cordova,

4) После принудительной остановки приложения я нажимаю на значок приложения, но появляется сообщение "Приложение не установлено". Приложение продолжит установку в фоновом режиме через несколько секунд. Я снова нажимаю на значок приложения, и открывается обновленное приложение.

Помогите решить эту проблему с помощью принудительной остановки приложения во время установки.

Журналы:

E: \ work \ hello1> adb logcat ActivityManager: Я com.example.hello1: D *: S

--------- начало системы

I/ActivityManager( 715): [Корректировка приоритета фоновой службы] Установите для callerFg значение false для service.getFlags (): 260

I / ActivityManager (715): START u0 {act = android.intent.action.VIEW dat = file: ///storage/emulated/0/filename1.apk typ = application / vnd.android.package-archive cmp = com. android.packageinstaller /.PackageInstallerActivity} из uid 10657 на дисплее 0

--------- начало основного

I/ActivityManager( 715): START u0 {dat=file:///storage/emulated/0/filename1.apk cmp=com.android.packageinstaller/.InstallAppProgress (имеет дополнительные элементы)} из uid 10072 на дисплее 0 I/ActivityManager( 715): отображается [AppLaunch] Отображается com.android.packageinstaller/.InstallAppProgress: +135 мс

I / ActivityManager (715): принудительная остановка com.example.hello1 appid=10657 пользователь =-1: удалить пакет pkg

I / ActivityManager (715): убийство 19149:com.example.hello1/u0a657 (прил. 1): остановка com.example.hello1

W / ActivityManager (715): выключить уведомление приложения, выйти из packageName=com.example.hello1 I/ActivityManager( 715): принудительно завершить действие ActivityRecord {16a2ad7e u0 com.example.hello1 /.MainActivity t2758}

I / ActivityManager (715): принудительно завершить действие ActivityRecord {32eb6933 u0 com.android.packageinstaller /.InstallAppProgress t2758}

W / ActivityManager (715): ложная смерть для ProcessRecord{2590ad4d 19149:com.example.hello1/u0a657}, curProc для 19149: ноль

I / ActivityManager (715): принудительная остановка com.example.hello1 appid=10657 user=-1: обновить pkg I/ActivityManager( 715): принудительная остановка com.example.hello1 appid=10657 user=0: pkg удален

1 ответ

У меня есть две возможные причины, связанные с вашей проблемой:

  • Проблема, связанная с потоком, в зависимости от типа процессора мобильного телефона или планшета (сколько потоков может работать одновременно), имейте в виду, что cordoba-webintent — это асинхронный вызов.
  • В обеих версиях (cordoba-webintent и cordoba) могут отсутствовать общие плагины. (Плагины должны были быть там, но не включены!)

В первом сценарии сначала проверьте свой манифест:

      <intent-filter>
     <action android:name="com.example.yourapplication.hello1" />
     <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

Определенно у него должно быть уникальное имя. Затем проверьте свой java-код в том месте, где вы звоните в webintent.

      startActivity({action: 'com.example.yourapplication.hello1'}) 

а try{}здесь было бы удобно проверить, срабатывает ли webintent до или после запуска вашего приложения. MainActivity(). Также проверьте порядок намерения «огонь», если ваш MainActivity() (has extras)аргументы.

Второй сценарий заключается в следующем:

  • скачать Cordoba-webintent с gitHub
  • создай свой апк
  • извлеките его и найдите каталог плагина
  • включите этот каталог плагинов в свой проект
  • Таким образом, вы убедитесь, что webintent установлен с последним обновлением, и во время автоматического обновления, которое вы запускали ранее, все было в порядке.

Я надеюсь определить другой подход к вашему делу!

Другие вопросы по тегам