Запустите обновление приложения для 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 установлен с последним обновлением, и во время автоматического обновления, которое вы запускали ранее, все было в порядке.
Я надеюсь определить другой подход к вашему делу!