更新完成后如何自动重启应用?

时间:2018-09-20 02:07:51

标签: android

在Google之后,我决定这样做:

<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,为什么?

我的设备操作系统版本为4.4.4。然后从我自己的服务器更新应用。

1 个答案:

答案 0 :(得分:0)

不是android.intent.action.ACTION_MY_PACKAGE_REPLACED。 是android.intent.action.MY_PACKAGE_REPLACED

<receiver android:name=".UpdateReceiver">
    <intent-filter>
       <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
    </intent-filter>
</receiver>