转载请注明出处:https://blog.youkuaiyun.com/mythmayor/article/details/72842520
1.在自定义的Application中添加下面代码,在其它类中直接使用即可。
private static Map<String, Activity> destroyMap = new HashMap<>();
/**
* 添加到销毁队列
*
* @param activity 要销毁的activity
*/
public static void addDestroyActivity(Activity activity, String activityName) {
destroyMap.put(activityName, activity);
}
/**
* 销毁指定Activity
*/
public static void destroyActivity(String activityName) {
Set<String> keySet = destroyMap.keySet();
if (keySet.size() > 0) {
for (String key : keySet) {
if (activityName.equals(key)) {
destroyMap.get(key).finish();
}
}
}
}
2.使用
AActivity.class
/**
* Created by mythmayor on 2017/3/31.
*/
public class AActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
MainApplication.addDestroyActivity(this, "AActivity");
}
}
BActivity.class
/**
* Created by mythmayor on 2017/3/31.
*/
public class BActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
MainApplication.destroyActivity("AActivity");
}
}
本文介绍了一种通过自定义Application类来实现对Android应用中Activity的统一管理与销毁的方法。通过维护一个Activity实例的映射表,可以方便地从外部调用销毁指定的Activity,有助于减少内存泄漏的风险。
1312

被折叠的 条评论
为什么被折叠?



