Skip to main content

Lifecycle

Activity

Base

查看当前界面属于哪个 Activity,自定义 Activity 继承 BaseActivity

public class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
}
}

Collector

在所有 Activity 的 onCreate 方法调用静态的 addActivity 方法,onDestroy 方法调用静态的 removeActivity 方法。

  • ActivityCollector.addActivity(this);
  • ActivityCollector.removeActivity(this);
public class ActivityCollector {

public static List<Activity> activities = new ArrayList<Activity>();

public static void addActivity(Activity activity) {
activities.add(activity);

}

public static void removeActivity(Activity activity) {
activities.remove(activity);

}

public static void finishAll() {
for (Activity activity : activities) {
if (!activity.isFinishing()) {
activity.finish();
}
}
}
}

Start

为每个 Activity 添加静态的 actionStart 方法,供其他 Activity 启用此 Activity

public static void actionStart(Context context, String data1, String data2) {
Intent intent = new Intent(context, thisActivity.class);
intent.putExtra("param1", data1);
intent.putExtra("param2", data2);
context.startActivity(intent);
}

Fragment

android.app.Fragment

XML

<fragment
android:id="@+id/right_fragment"
android:name="com.example.fragmentTest.RightFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
></fragment>

Create

@Override
public View onCreateView(
LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.left_fragment, container, false);
return view;
}

Add

AnotherRightFragment fragment = new AnotherRightFragment();
FragmentTransaction transaction = getFragmentManager.beginTransaction();

//容器的 id 和待添加的碎片实例
transaction.replace(R.id.right_layout, fragment);
//模拟返回栈
transaction.addToBackStack(null);
transaction.commit();

Transfer Information

In Activity

getFragmentManager().findFragmentById(R.id.right_fragment);

In Fragment

MainActivity activity = (MainActivity) getActivity();

Runtime Loop

  • onAttach() 当碎片和活动建立关联的时候调用。
  • onCreateView() 为碎片创建视图(加载布局)时调用。
  • onActivityCreated() 确保与碎片相关联的活动一定已经创建完毕的时候调用。
  • onDestroyView() 当与碎片关联的视图被移除的时候调用。
  • onDetach() 当碎片和活动解除关联的时候调用。