Android应用程序启动更新与cordova-webintent并强制停止

时间:2016-12-15 16:00:18

标签: android cordova install updates webintents

步骤: 1)打开Android应用程序(使用cordova构建)

2)然后我打电话给cordova-webintent安装更新 https://github.com/Initsogar/cordova-webintent

3)我按下Install并开始安装,但几秒后app强制停止并关闭而不是安装并打开更新的应用程序。

此问题出现在前一段时间,我无法理解为什么会发生这种情况,因为cordova-webintentcordova的版本相同。

4)应用程序强制停止后,我点击应用程序图标,但会显示“未安装应用程序”的消息。几秒后,应用程序继续在后台安装。我再次点击应用程序图标,打开更新的应用程序。

请安装时使用app force stop帮助解决此问题。

日志:

  

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

     

---------系统开头

     

I / ActivityManager(715):[后台服务优先级调整]将service.getFlags()的callerFg设置为false: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显示0上来自uid 10657的= com.android.packageinstaller / .PackageInstallerActivity}

     

---------主要的开头

     

I / ActivityManager(715):在显示0上从uid 10072开始u0 {dat = file:///storage/emulated/0/filename1.apk cmp = com.android.packageinstaller / .InstallAppProgress(有额外内容)}   I / ActivityManager(715):[AppLaunch]显示显示的com.android.packageinstaller / .InstallAppProgress:+ 135ms

     

I / ActivityManager(715):强制停止com.example.hello1 appid = 10657 user = -1:uninstall pkg

     

I / ActivityManager(715):Killing 19149:com.example.hello1 / u0a657(adj 1):stop com.example.hello1

     

W / ActivityManager(715):通知app开关退出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},19149的curProc:null

     

I / ActivityManager(715):强制停止com.example.hello1 appid = 10657 user = -1:update pkg   I / ActivityManager(715):强制停止com.example.hello1 appid = 10657 user = 0:pkg removed

1 个答案:

答案 0 :(得分: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) 参数,还要检查意图“触发”顺序。

第二种情况是:

  • gitHub 下载 cordoba-webintent
  • 构建你的 apk
  • 解压并找到插件目录
  • 在你的项目中包含这个插件目录
  • 这种方式将确保 webintent 安装了最新的 更新并且在您运行的自动更新期间没有任何问题 之前。

我希望针对您的案例提出不同的方法!