如果我从Activity
添加片段,然后关闭该片段,我该如何跟踪?我遇到的问题如下:
添加片段不会调用任何Activity生命周期,所以我没有onPause / onResume来保释我
我没有开始新的活动,所以启动结果活动是不可行的。
对此有任何帮助将不胜感激。
提前致谢。
答案 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
}
});