我的应用程序中有一个进度条。我正在调用一个意向服务来下载大文件。进度条在服务开始下载时正确更新。当我从设备上点击后退按钮时,意图服务仍在后台运行,并且进度条计数也在后台更新,但是当我再次打开该应用程序时,即使进度条计数从何处开始,进度条也没有更新该值我离开了。你能帮我解决这个问题吗?当单击后退按钮时进度条没有更新值
这是具有在布局文件中的进度条IM,
<ProgressBar
android:id="@+id/progressBar2"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:indeterminate="false"
android:max="100"
android:minHeight="50dp"
android:minWidth="200dp"
android:progress="1" />
这是我的java文件,其中IM更新进度。进度意图将具有当前的进度更新计数。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sharedPref = getPreferences(Context.MODE_PRIVATE);
progressBar2 = (ProgressBar) findViewById(R.id.progressBar2);
updateReceiver = new CheckNetworkConnectivity(
new NetworkReceiverCallback() {
@Override
public void onNetworkReceived(int status) {
networkStaus = status;
if (networkStaus == 0) {
Toast.makeText(
getApplicationContext(),
"Download interrupted due to network issue.",
Toast.LENGTH_SHORT).show();
} else {
onCallService(fileLength, currentDate, downloaded, Constants.downloadStatus);
Toast.makeText(getApplicationContext(),
"Start downloading....",
Toast.LENGTH_SHORT).show();
}
}
});
registerReceiver(updateReceiver, new IntentFilter(
ConnectivityManager.CONNECTIVITY_ACTION));
activity = this;
}
private void onCallService(long downloaded, String lastModifiedDate, long size, int downloadStatus) {
mReceiver = new DownloadResultReceiver(new Handler());
mReceiver.setReceiver(this);
Intent intent = new Intent(Intent.ACTION_SYNC, null, this,
DownloadBackgroundService.class);
String url = "";
intent.putExtra("url", url);
intent.putExtra("receiver", mReceiver);
intent.putExtra("downloaded", downloaded);
intent.putExtra("downloadStatus", downloadStatus);
intent.putExtra("size", size);
intent.putExtra("lastModifiedDate", lastModifiedDate);
startService(intent);
}
@Override
public void onReceiveResult(int resultCode, Bundle resultData) {
int progress = resultData.getInt("progress");
progressBar.setProgress(progress);
progressBar.setMax(100);
progressBar.setText(String.valueOf(progress) + "/100");
progressBar2.invalidate();
progressBar2.setProgress(progress);
progressBar2.isFocused();
Log.d("DownloadService", "Progress bar is updating : " + progress);
}
@Override
protected void onStart() {
progressBar = (TextProgressBar) findViewById(R.id.progressBar1);
progressBar.setProgress(0);
progressBar.setMax(100);
progressBar.setText(String.valueOf(0) + "/100");
super.onStart();
}
@Override
protected void onRestart() {
super.onRestart();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(updateReceiver);
}
发布您的完整Java代码将更好地帮助 –
已添加@PhanDinhThai – Ravi