在非主Activity中点击下载按钮时,新建一个线程来下载文件。同时要在非主Activity中定义一个Handler来刷新下载进度。如果界面切到了主Activity界面,当文件下载完成后,非主Activity中的Handler仍会获得信息并处理。我选择在这时发送一个广播:
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 1) {
int index= msg.getData().getInt("index");
if(index!=0){
//显示进度
}
if(index>=100){
if(当前是非主Activity){
//隐藏进度,弹出下载完成提示
}else{
//给主Activity发送一个广播
Intent intent = new Intent("android.intent.action.MAIN");
sendBroadcast(intent);
}
}
}
}
};
同时,在主Activity中定义一个广播接收器,并处理
BroadcastReceiver mReceiver=new BroadcastReceiver(){
public void onReceive(Context context, Intent intent) {
//刷新主Activity界面
init();
}
};
IntentFilter intentFilter = new IntentFilter("android.intent.action.MAIN");
registerReceiver(mReceiver, intentFilter);
这样就实现我想要的功能。