首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android中设置Receiver?

如何在Android中设置Receiver?
EN

Stack Overflow用户
提问于 2016-09-19 13:45:17
回答 2查看 133关注 0票数 1

我想使用receiver进行自动更新。

单击时,使用URI获取下载。

代码语言:javascript
复制
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(strUrl));
startActivity(intent);

我想要的是运行意图自动下载的apk。

现在,我必须在下载后再次单击apk文件。但我想做自动下载-运行新的Apk -删除apk文件。

所以我试着使用receiver,但我不知道如何使用它。

首先,我在清单中添加了这个。

代码语言:javascript
复制
 <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>

第二,我做了一个新的班级。

代码语言:javascript
复制
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");
    }
  }
}

但是,下载后,接收器不再工作。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-19 14:43:57

您已经静态注册了BroadcastReceiver,它保证当您发布的任何意图被发送时,您的应用程序将被启动。

然而,你的接收器只会在它收到

DownloadManager.ACTION_DOWNLOAD_COMPLETE

票数 0
EN

Stack Overflow用户

发布于 2016-09-19 15:05:39

谢谢你们。我更改了我的代码

代码语言:javascript
复制
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);
        }
    });`

它工作得很好。感谢所有人

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39566105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档