Handler使用WeakReference
2014-08-15 00:50
92 查看
</pre><pre name="code" class="java">在Activity中可通过WeakReference来是用Handler,可以有效防止内存泄露。
</pre><pre name="code" class="java">public class HandlerActivity extends Activity { private String string = "string"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(2000); myHandler.sendEmptyMessage(0); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); } public void test(){ System.out.println("test"); } MyHandler myHandler = new MyHandler(this); static class MyHandler extends Handler{ private WeakReference<HandlerActivity> weakReference; public MyHandler(HandlerActivity handlerActivity) { this.weakReference = new WeakReference<HandlerActivity>(handlerActivity); } @Override public void handleMessage(Message msg) { super.handleMessage(msg); HandlerActivity activity = weakReference.get(); // 调用HandlerActivity中的变量 System.out.println(activity.string); // 调用HandlerActivity中的方法 activity.test(); } } }
相关文章推荐
- Android中handler使用WeakReference防止内存泄露
- 使用WeakReference,解决 Handler class should be static or leaks might occur问题
- Android Handler leak 分析及解决办法,使用WeakReference
- android中handler使用WeakReference防止内存泄露
- android中handler使用WeakReference防止内存泄露
- android中handler使用WeakReference防止内存泄露
- 使用handler"不落地"返回图片信息
- 在 ASP.NET 中使用 HTTPHandler 实现 Front Controller
- 在asp.net中使用HttpHandler为网站图片添加水印
- Struts+Spring+Hibernate项目中使用log4j时发生如下错误"org.apache.log4j.spi.ErrorHandler"
- 在自定义HttpHandler中使用Session
- 在自定义HttpHandler中使用Session
- 使用IConfigurationSectionHandler在web.config中增加自定义配置
- [原创]自定义Config例子,使用IConfigurationSectionHandler 接口
- 使用HttpHandler实现URL重写
- 怎样在自定义HTTPHANDLER中使用SESSION的方法?
- 使用HttpHandler实现URL重写
- 使用HttpHandler实现URL重写
- 使用HttpHandler实现URL重写
- 在自定义HttpHandler中使用Session