避免使用Handler而造成的記憶體洩漏
public class SampleActivity extends Activity { /** * Instances of static inner classes do not hold an implicit * reference to their outer class. */
private static class MyHandler extends Handler { private final WeakReference mActivity; public MyHandler(SampleActivity activity) { mActivity = new WeakReference(activity); } @Override public void handleMessage(Message msg) { SampleActivity activity = mActivity.get(); if (activity != null) { // ... } } } private final MyHandler mHandler = new MyHandler(this); /** * Instances of anonymous classes do not hold an implicit * reference to their outer class when they are static. */ private static final Runnable sRunnable = new Runnable() { @Override public void run() { /* ... */ } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Post a message and delay its execution for 10 minutes. mHandler.postDelayed(sRunnable, 1000 * 60 * 10); // Go back to the previous Activity. finish(); }}
相關文章
- Android中使用Handler為何造成記憶體洩漏?Android記憶體
- Handler的使用、記憶體洩漏和解決記憶體
- dealloc不呼叫造成記憶體洩漏記憶體
- 如何避免JavaScript中的記憶體洩漏?JavaScript記憶體
- 記憶體洩漏-原因、避免和定位記憶體
- Handler記憶體洩漏分析及解決記憶體
- 造成記憶體洩漏的異常處理記憶體
- 閉包會造成記憶體洩漏嗎?記憶體
- Android中使用Handler造成記憶體洩露的分析和解決Android記憶體洩露
- Handler 訊息機制以及記憶體洩漏記憶體
- Handler記憶體洩漏原因及解決方案記憶體
- Android Handler機制之記憶體洩漏Android記憶體
- Android記憶體優化(三)避免可控的記憶體洩漏Android記憶體優化
- [譯] Swift:通過示例避免記憶體洩漏Swift記憶體
- 4類 JavaScript 記憶體洩漏及如何避免JavaScript記憶體
- 避免PHP-FPM記憶體洩漏導致記憶體耗盡PHP記憶體
- 記憶體洩漏記憶體
- vue使用中的記憶體洩漏Vue記憶體
- javascript中容易造成記憶體洩漏和使用不善的幾個操作JavaScript記憶體
- 分析記憶體洩漏和goroutine洩漏記憶體Go
- 避免使用不當pthread_create函式造成記憶體洩露thread函式記憶體洩露
- [譯]Kotlin是如何幫助你避免記憶體洩漏的?Kotlin記憶體
- 記憶體洩漏的原因記憶體
- c++ 虛解構函式[避免記憶體洩漏]C++函式記憶體
- js記憶體洩漏JS記憶體
- Java記憶體洩漏Java記憶體
- webView 記憶體洩漏WebView記憶體
- Javascript記憶體洩漏JavaScript記憶體
- WebView引起的記憶體洩漏WebView記憶體
- ARC下的記憶體洩漏記憶體
- 【轉】Java的記憶體洩漏Java記憶體
- 記憶體分析與記憶體洩漏定位記憶體
- 記憶體洩漏和記憶體溢位記憶體溢位
- valgrind 記憶體洩漏分析記憶體
- Android 記憶體洩漏Android記憶體
- Android記憶體洩漏Android記憶體
- 淺談記憶體洩漏記憶體
- JavaScript 記憶體洩漏教程JavaScript記憶體