android更新app服务器失败,android – 更新我的App问题

我正在开发一个非公开的Android应用,即该应用将无法在全球Android电子市场中使用.该应用程序将安装在有限数量的客户端上,例如通过使用apk文件.我在SD卡中有一个.apk,我正在尝试从我的应用程序更新我的应用程序.为此,我正在使用意图

我的守则

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory().getPath()+"/" +"Test.apk")), "application/vnd.android.package-archive");

startActivity(intent);

注意:它工作正常,但更新后,应用程序将被关闭.

问题是“如何防止这种情况?”

我也使用广播接收器重新打开我的应用程序

public class AutoStart extends BroadcastReceiver{

@Override

public void onReceive(Context context, Intent intent) {

if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){

Intent i = new Intent(context, ABCActivity.class);

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(i);

}else{

Intent i = new Intent(context, XYZActivity.class);

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(i);

}

}

问题

1: – 无法重新打开活动时

“android.intent.action.PACKAGE_ADDED”

“android.intent.action.PACKAGE_INSTALL”

“android.intent.action.PACKAGE_CHANGED”

android:name=".AutoStart"

android:enabled="true"

android:exported="true" >

“android.intent.action.BOOT_COMPLETED”正常工作

权限给定

1 >

2 >

3 >

解决方法:

遗憾的是,你不能阻止进程在重新安装时被终止,而另一方面 – 如果你自己的应用程序在那时重新安装,你将永远不会收到任何广播.

如果我必须实现这样的功能,我会解决这个问题:

技巧1:

只创建另一个应用程序(也会以某种方式安装在用户的设备上)它只会像“看门狗”一样:这个应用程序会听安装广播,因为它是不同的应用程序然后是那个安装 – 启动“原始应用程序”没有问题.

当然不要忘记用户将需要“启动”至少一个这个看门狗应用程序,因为从Android 4接收器将无法工作,直到应用程序进程至少开始.这是出于安全原因..

技巧2:

另一种选择是在清单中注册你的应用程序也是ACTION_TIME_TICK广播.你可以指望这个广播被调用每个秒数,并在它收到一些逻辑时实现,这些逻辑识别现在的应用程序是否需要启动主要活动.

这种方法会起作用,但是从表演的原因来看并不是那么好 – 因为你的应用程序流程几乎一直都会活着,因为它会对那个广播作出反应.如果你不在乎 – 所以这不是问题

技巧3:

在您开始安装活动之前的30-50秒之前,将pendingIntent提供给alarmManager.待处理的意图将有意重新启动您的应用程序.

假设应用程序将安装到那时 – 它会工作.

标签:android,android-intent,broadcastreceiver

来源: https://codeday.me/bug/20190718/1492553.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值