*}
观察者模式实例2:
//自己的观察者模式.
public class ListenerCollector {
static private WeakHashMap<View,MyView.MyListener> sListener = new WeakHashMap<>();
public void setsListener(View view, MyView.MyListener listener){ sListener.put(view,listener);}
//解决方案
public static void clearListeners(){
//hashmap移除。
sListener.clear();
};
}
public class MyView extends View{
public MyView(Context context){
super(context);
init();
}
public interface MyListener{
public void myListenerCallback();
}
private void init(){
ListenerCollector collector = new ListenerCollector();
collector.setsListener(this,myListener);
}
private MyListener myListener = new MyListener() {
@Override
public void myListenerCallback() {
System.out.print("有被调用");
}
};
}
//activity调用处
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView myView = new MyView(this);
setContentView(myView);
}
实例2解决方案
@Override
protected void onStop() {
super.onStop();
ListenerCollector.clearListeners();
}
5.资源未关闭造成的内存泄漏
对于使用了BraodcastReceiver,ContentObserver,File,Cursor,Stream,Bitmap等资源的使用,应该在Activity销毁时及时关闭或者注销,否则这些资源将不会被回收,造成内存泄漏。
6.内存泄漏总结
由于值栈是struts 2中ognl的根对象,如果用户需要访问值栈中的对象,则可以直接通过下面的代码访问值栈中的属性: //获得值栈中的foo属性。
由于valuestack(值栈)是struts 2中ognl的根对象,如果用户需要访问值栈中的对象,在jsp页面可以直接通过下面的el表达式访问valuestack(值栈)中对象的属性: ${foo} //获得值栈中某个对象的foo属性。
由于valuestack(值栈)是struts2中ognl的根对象,如果用户需要访问值栈中的对象,在jsp页面可以直接通过下面的el表达式访问valuestack(值栈)中对象的属性:。
3.由于valuestack(值栈)是struts 2中ognl的根对象,如果用户需要访问值栈中的对象,在jsp页面可以直接通过下面的el表达式访问valuestack(值栈)中对象的属性:。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-89859-8.html
恬不知耻
而且得是F35B
也必须要留出公共空间以利大家通行的