gpt4 book ai didi

android - DownloadManager 没有收到下载完成的 Action

转载 作者:行者123 更新时间:2023-11-30 02:00:14 34 4
gpt4 key购买 nike

我有一个在后台下载文件的 Intent 服务,注册了一个广播接收器来监听下载完成,但从未进入接收器的 onReceive() 函数。该文件似乎已完成下载,我可以在文件资源管理器中看到它,并从 DownloadManager 收到状态为 SUCCESS 的消息。在下载成功消息之前,我收到错误消息 Failed to chmod/mnt/internal_sd/../filedownloaded

Intent 从主 Activity onCreate 开始:

Intent i = new Intent(context, MyIntentService.class);
startService(i);

Intent 服务:

public class MyIntentService extends IntentService  {

DownloadManager downloadManager;

@Override
protected void onHandleIntent(Intent intent) {
IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
registerReceiver(downloadReceiver, filter);
downloadFile();
}

void downloadFile(Uri downloadUri) {
downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);

DownloadManager.Request request = new DownloadManager.Request(downloadUri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
request.setAllowedOverRoaming(false);
request.setTitle("My Andorid App Download");
request.setDestinationInExternalFilesDir(getApplicationContext(), null, sku + ".apk");

long downloadNum = downloadManager.enqueue(request);
}

private BroadcastReceiver downloadReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("does not get in here.");
long id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
Uri u = downloadManager.getUriForDownloadedFile(id);
}
};
}

list :

<service
android:name="com.example.MyIntentService"
android:exported="false">

<intent-filter>
<action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
</intent-filter>

</service>

这听起来像是权限问题,chmod 错误失败,但我不太明白是什么。

最佳答案

我想出了我的问题。你不应该在 Intent 服务中有一个广播接收器,因为 Intent 服务在一个单独的线程上运行,它将执行你的 onHandleIntent() 中的所有内容然后消失。在下载管理器可以广播下载完成之前,我的 Intent 服务就消失了。

关于android - DownloadManager 没有收到下载完成的 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31597446/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com