在谷歌之后,我决定这样做:
<receiver android:name=".UpdateReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>
以及:
public class UpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.ACTION_MY_PACKAGE_REPLACED")){
Intent intent = new Intent(context, StartActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
}
由于设备是根设备,因此请使用以下代码进行更新:
command = "pm install -r " + "/mnt/sdcard/Download/xxx.apk";
Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", command});
proc.waitFor();
更新成功,但UpdateReceiver未触发,为什么?
我的设备OS verison是4.4.4。我从自己的服务器上更新应用程序。