下面给几个邪门歪道的玩法,都是在实际项目中为了某些诡异需求而产生的。
1、强行关闭
作用:无论在何时何地都能关掉某个Activity
代码:
public class TestActivity extends Activity{ private static TestActivity me = null; public static void close(){ if (me!=null) { me.finish(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); me = this; } }
好处:简单、粗暴。不管你是在Adapter中,还是在其他Activity中,仅仅一句代码就可以关闭。(如果同个Activity打开多次,可以用数组解决)
弊端:静态Activity占用内存
2、毁尸灭迹
作用:临时处理一些诡异的跳转,比如A到B到C,在C按返回到A
代码:
Intent intent = new Intent(this,MainActivity.class); startActivity(intent); finish();
好处:每次跳转都会干掉原先的Activity,想跳到哪个界面就重新startActivity一次。这样做的好处是不用花时间去想那些奇葩需求的跳转逻辑,反正我全都干掉,要显示哪个就跳哪个。
弊端:每次都要重新启动Activity,需要加载时间,建议只在部分特殊场景使用
3、观察者模式
作用:装B
代码:把所有Activity弄成观察者,被观察的对象是个单例工具类
好处:可以在任何地方调用一句工具类代码关闭或更新某个界面
弊端:实际上就是上面1的数组版本,静态Activity太多,这样不好不好
原文:http://my.oschina.net/u/816576/blog/493421