繁体   English   中英

Android:如何知道活动何时结束?

[英]Android: How to know when an activity finish?

我有一个main activity A > call activity B > call activity C > call activity D

活动由startActivity(intent).调用startActivity(intent). Activity D具有“关闭”按钮。

Activity D上单击“关闭”按钮时,如何通知Activity A

任何帮助表示赞赏。

尝试这个:

使用SharedPreference将按钮的状态存储在活动D中。

在活动A的onResume()下,从SharedPreference获取按钮的状态。

   //* start the activity with enum defined int activity D to identify your activity
   startActivityForResult(intent, DActivity.D_REQUEST_CODE);

  //in your D activity define this
  private static final int D_REQUEST_CODE  = 1;


  //* when the button is clicked to close in your D activity, call this in the button event listner
  setResult(Activity.RESULT_OK, intent);


  //* implement this in your A activity
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) 
  {
    if(data==null)return;
    if (requestCode == DActivity.D_REQUEST_CODE) 
    {
      switch (resultCode) 
      {
        case Activity.RESULT_OK:
           //* do something
            break;
        default:
            break;
      }
    }
    findViewById(R.id.button_close).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(this, Activity_A.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
        }
    });

如果您希望在清除活动堆栈时仅显示活动A,则此方法将起作用。 如果您只想知道何时返回到活动A,可以按照上面的回答将状态保存在SharedPrefs中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM