我需要一些帮助来刷新我应用程序中的一个 Activity 。我正在使用选项卡主机 Activity 并连接到 Web 服务并从我的一个子 Activity 中下载一些数据。当我在我的子 Activity 中按下同步按钮时,我开始了一个不在选项卡主机中的新 Activity ,当同步完成后,它返回到它的父 Activity (子 Activity )。我想要实现的是在我返回时刷新 Activity 。当我在互联网上查看时,我发现最好的选择是使用 startActivityForResult
,但我真的不明白如何使用它以及如何在收到结果时刷新 Activity 完成 Activity 。
如果有人能帮助我,我将非常高兴。谢谢!
编辑:
我正在使用这段代码,它甚至没有在 onActivityResult
MyCollectionId.class :
Intent intent = new Intent(MyCollectionId.this, Synchronization.class);
intent.putExtra("process", 2);
startActivityForResult(intent, 1);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
Log.e("","OnActivityResult");
Intent refresh = new Intent(this, MyCollectionId.class);
startActivity(refresh);
this.finish();
}
}
同步类:
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
setResult(RESULT_OK,intent);
finish();
最佳答案
按下按钮:
Intent intent = new Intent(this, SyncActivity.class);
//intent.putExtra("someData", "Here is some data");
startActivityForResult(intent, 1);
然后在同一个 Activity 类中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
Intent refresh = new Intent(this, InitialActivity.class);
startActivity(refresh);
this.finish();
}
}
同步 Activity 将具有:
setResult(RESULT_OK, null);
finish();
关于返回时 Android 刷新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8240934/