2010-11-14 22 views
1

当我从android下载web文件时,我想通过服务在状态栏的通知区域显示进度条,但我无法做到这一点。我该怎么做?我无法传递服务中的文件长度。我在EditText中提供URL,然后单击Download Button。 Click之后一个类将在Click Listener上被调用,这个类有一个函数。在那个函数中,我正在处理或下载功能,现在我想在Notification Area Through服务中显示进度条,但我无法做到这一点。请帮帮我。提前致谢。在Android中与服务在背景中的文件下载

回答

1

它应该是下载文件的服务,而不是活动(正如我现在理解的那样)。完成后,服务会通知活动并(可选)传递结果。在这种情况下,您将能够更新通知进度栏并仍然与用户交互。

2
  1. 您不应该在事件处理程序中运行网络代码(或任何长时间运行/阻塞代码)。这会阻塞主线程(EDT)并使应用程序无响应,可能会产生ANR。你应该使用AsyncTask

  2. 要显示通知,只需创建一个new Notification(..),然后致电NotificationManager.notify()。您可以放心地在AsyncTask.onPreExecute()方法创建通知,并通过调用publishProgress(..)

一个例子ProgressBar in Notification AreaAsyncTask.doInBackground()方法中更新。您必须在2. AsyncTask中使用此内容。