如何知道何时从片段返回到活动

时间:2015-10-12 03:30:01

标签: android android-fragments

如果我从Activity添加片段,然后关闭该片段,我该如何跟踪?我遇到的问题如下:

  

添加片段不会调用任何Activity生命周期,所以我没有onPause / onResume来保释我

     

我没有开始新的活动,所以启动结果活动是不可行的。

对此有任何帮助将不胜感激。

提前致谢。

3 个答案:

答案 0 :(得分:2)

如果您使用支持版本,请在AppCompatActivity

@Override
protected void onResumeFragments() {
    super.onResumeFragments();
}

@Override
public void onAttachFragment(Fragment fragment) {
    super.onAttachFragment(fragment);
}

答案 1 :(得分:1)

package com.example.keralapolice;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentManager.OnBackStackChangedListener;
import android.content.Intent;
 import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;


public class ChiefFragment extends Fragment {
View view;

// public OnBackPressedListener onBackPressedListener;

@Override
public View onCreateView(LayoutInflater inflater,
        ViewGroup container, Bundle args) {

    view = inflater.inflate(R.layout.activity_chief, container, false);
    getActivity().getActionBar().hide();
    view.setFocusableInTouchMode(true);
    view.requestFocus();
    view.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            Log.i(getTag(), "keyCode: " + keyCode);
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                getActivity().getActionBar().show();
                Log.i(getTag(), "onKey Back listener is working!!!");
                getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
                // String cameback="CameBack";
                Intent i = new Intent(getActivity(), home.class);
                // i.putExtra("Comingback", cameback);
                startActivity(i);
                return true;
            } else {
                return false;
            }
        }
    });
    return view;
}
}

答案 2 :(得分:0)

正如Neil所说,这可以使用getSupportFragmentManager().addOnBackStackChangedListener();

来完成

我所做的实现如下:

getSupportFragmentManager().addOnBackStackChangedListener(
                new android.support.v4.app.FragmentManager.OnBackStackChangedListener() {
            public void onBackStackChanged() {
                int backCount = getSupportFragmentManager().getBackStackEntryCount();
                // do some logic

            }
        });