当 activity 进入后台 adapter.notifyDataSetChanged() 时,不起作用
When activity goes to background adapter.notifyDataSetChanged(), does not work
在我的应用程序中,单击缩略图会下载 pdf,progress indicator 会显示下载进度,下载完成后会从已下载 class 和主 [=21] 中触发广播=] 广播接收器已注册并且 adapter.notifyDataSetChanged();行为。并且进度指示器变得不可见这是我的要求但是
我的问题是,当主要 activity 进入后台并完成下载时,当用户返回 activity
时,进度指示器不会出现 invisible.
BroadcastReceiver receiver=new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent) {
adapter.notifyDataSetChanged();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridview);
new DownloadJSON().execute();
}
@Override
protected void onResume() {
super.onResume();
registerReceiver(receiver,new IntentFilter("com.download.complete"));
}
@Override
public void onStop() {
super.onStop();
unregisterReceiver(receiver);
//完成下载pdf后,广播被触发
context.sendBroadcast(意图);
您在 onStop() 方法中注销了接收器。每当 activity 进入后台时,您就没有监听接收器。因此,不会调用 notifyDataSetChanged() 并且不会执行您的操作。
请修改你的 onResume() 方法
@Override
protected void onResume() {
if (adapter !=null) {
adapter.notifyDataSetChanged();
}
registerReceiver(receiver,new IntentFilter("com.download.complete"));
super.onResume();
}
在我的应用程序中,单击缩略图会下载 pdf,progress indicator 会显示下载进度,下载完成后会从已下载 class 和主 [=21] 中触发广播=] 广播接收器已注册并且 adapter.notifyDataSetChanged();行为。并且进度指示器变得不可见这是我的要求但是 我的问题是,当主要 activity 进入后台并完成下载时,当用户返回 activity
时,进度指示器不会出现 invisible.BroadcastReceiver receiver=new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent) {
adapter.notifyDataSetChanged();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridview);
new DownloadJSON().execute();
}
@Override
protected void onResume() {
super.onResume();
registerReceiver(receiver,new IntentFilter("com.download.complete"));
}
@Override
public void onStop() {
super.onStop();
unregisterReceiver(receiver);
//完成下载pdf后,广播被触发 context.sendBroadcast(意图);
您在 onStop() 方法中注销了接收器。每当 activity 进入后台时,您就没有监听接收器。因此,不会调用 notifyDataSetChanged() 并且不会执行您的操作。
请修改你的 onResume() 方法
@Override
protected void onResume() {
if (adapter !=null) {
adapter.notifyDataSetChanged();
}
registerReceiver(receiver,new IntentFilter("com.download.complete"));
super.onResume();
}