返回时的Android刷新活动

And*_*oid 14 android refresh android-tabhost android-activity

我需要一些帮助来刷新我的应用程序中的一个活动.我正在使用标签主机活动并连接到Web服务并从我的一个子活动中下载一些数据.当我在我的子活动中按下同步按钮时,我正在开始一个不在标签主机中的新活动,当同步完成后,它将返回到它的父项(子活动).我想要实现的是当我返回它时刷新活动.当我通过互联网查看时,我发现最好的选择就是使用startActivityForResult,但我真的不明白如何使用它,以及当我从完成的活动中收到结果时如何刷新活动.

如果有人能帮助我,我会很高兴.谢谢!

编辑:

我正在使用此代码,它甚至没有显示登录 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();
 }
}
Run Code Online (Sandbox Code Playgroud)

Synchronization.class:

Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
setResult(RESULT_OK,intent);
finish();
Run Code Online (Sandbox Code Playgroud)

小智 24

按下按钮:

Intent intent = new Intent(this, SyncActivity.class);
        //intent.putExtra("someData", "Here is some data");
        startActivityForResult(intent, 1);
Run Code Online (Sandbox Code Playgroud)

然后在同一个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();
      }
     }
Run Code Online (Sandbox Code Playgroud)

同步活动将具有:

setResult(RESULT_OK, null);
finish();
Run Code Online (Sandbox Code Playgroud)


And*_*oid 11

另一个棘手的方法是开始你的活动 onRestart()

@Override
public void onRestart(){
    super.onRestart();
    Intent previewMessage = new Intent(StampiiStore.this, StampiiStore.class);
    TabGroupActivity parentActivity = (TabGroupActivity)getParent();
    parentActivity.startChildActivity("StampiiStore", previewMessage);
    this.finish();
}
Run Code Online (Sandbox Code Playgroud)

那应该可以做到这一点.(在此代码中,我将展示使用自定义TabActivity管理器时的方式.)