android活动管理器,Android 中管理所有的 Acyivity 活动
我們?cè)?App 中,通常會(huì)打開(kāi)很多個(gè)任務(wù)棧,如果我們要退出 App,要點(diǎn)擊返回鍵一步步的退出?有沒(méi)有更簡(jiǎn)單的方法嗎?答案是有的,我們創(chuàng)建一個(gè) Activity 管理器,來(lái)統(tǒng)一管理 Activity。
新建一個(gè) ActivityCollectior 類自作為活動(dòng)管理器:
public class ActivityCollector {
/**
* 創(chuàng)建一個(gè)集合保存
*/
public static List activities = new ArrayList<>();
/**
* 添加 Activity
* @param activity
*/
public static void addActivity(Activity activity){
activities.add(activity);
}
/**
* 移除 Activity
* @param activity
*/
public static void removeActivity(Activity activity){
activities.remove(activity);
}
/**
* 移除所有 Activity
*
*/
public static void finishAll(){
for (Activity activity:activities){
if (!activity.isFinishing()){
activity.finish();
}
}
activities.clear();
}
}
創(chuàng)建一個(gè)基類,BaseActivity,讓所有的 Activity 繼承它。
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//添加創(chuàng)建的 Activity
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
//移除創(chuàng)建的 Activity
ActivityCollector.removeActivity(this);
}
}
隨便一個(gè) Activity 就可以退出 App,通過(guò)調(diào)用:
ActivityCollector.finishAll();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second2);
ButterKnife.bind(this);
init();
}
private void init() {
tvValue.setText("這是第三個(gè)頁(yè)面");
}
@OnClick({R.id.bt1, R.id.bt2})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.bt1:
//退出App
ActivityCollector.finishAll();
break;
case R.id.bt2:
break;
default:
}
}
/**
* Activity頁(yè)面跳轉(zhuǎn)建議這樣寫
* @param secondActivity
*/
public static void launch(SecondActivity secondActivity) {
Intent intent = new Intent(secondActivity,ThirdActivity.class);
secondActivity.startActivity(intent);
}
}
launch()這樣寫的好處:
1.別的 Activity 可以一句話調(diào)用。
2.可以清晰的看到傳遞過(guò)來(lái)的參數(shù),直接接受即可(重點(diǎn))。
總結(jié)
以上是生活随笔為你收集整理的android活动管理器,Android 中管理所有的 Acyivity 活动的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android 布局管理器,【Andro
- 下一篇: android检查新版本,详解Andro