我想使用receiver进行自动更新。
单击时,使用URI获取下载。
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(strUrl));
startActivity(intent);我想要的是运行意图自动下载的apk。
现在,我必须在下载后再次单击apk文件。但我想做自动下载-运行新的Apk -删除apk文件。
所以我试着使用receiver,但我不知道如何使用它。
首先,我在清单中添加了这个。
<receiver android:name=".common.PackageReceiver" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
<data android:scheme="package" />
</intent-filter>
</receiver>第二,我做了一个新的班级。
package com.ezcaretech.ecf.common;
public class PackageReceiver extends BroadcastReceiver {
public static final String DOWNLOAD_COMPLETE = "android.intent.action.DOWNLOAD_COMPLETE";
@Override
public void onReceive(Context context, Intent intent) {
String packageName = intent.getData().getSchemeSpecificPart();
String action = intent.getAction();
if (action.equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) {
Log.d("TAG", "DOWNLOAD COMPLETE");
}
}
}但是,下载后,接收器不再工作。
谢谢
发布于 2016-09-19 14:43:57
您已经静态注册了BroadcastReceiver,它保证当您发布的任何意图被发送时,您的应用程序将被启动。
然而,你的接收器只会在它收到
DownloadManager.ACTION_DOWNLOAD_COMPLETE
发布于 2016-09-19 15:05:39
谢谢你们。我更改了我的代码
builder.setPositiveButton(R.string.kor_confirm, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
DownloadManager dm= (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(strUrl));
dm.enqueue(request);
}
});`它工作得很好。感谢所有人
https://stackoverflow.com/questions/39566105
复制相似问题