在 Apress Pro Android 4中 ,作者说过:
旋转设备时,当前正在运行的活动的上下文将不再有效。[…]一种方法是使用对活动的弱引用而不是硬引用[…]
但是作者只是提出了这一建议,并未说明如何完成。谁曾做过此事,请举一个例子。
AsyncTask
您想在某处传递您的活动。然后,您将该引用保存为弱引用。然后,您可以取消引用并在中再次使用它onPostExecute
。
班级成员:
WeakReference<Activity> weakActivity;
在中的某个位置AsyncTask
,可能是构造函数或onPreExecute
:
weakActivity = new WeakReference<Activity>(activity);
在onPostExecute
:
Activity activity = weakActivity.get();
if (activity != null) {
// do your stuff with activity here
}
本文向大家介绍Android利用软引用和弱引用避免OOM的方法,包括了Android利用软引用和弱引用避免OOM的方法的使用技巧和注意事项,需要的朋友参考一下 想必很多朋友对OOM(OutOfMemory)这个错误不会陌生,而当遇到这种错误如何有效地解决这个问题呢?今天我们就来说一下如何利用软引用和弱引用来有效地解决程序中出现的OOM问题. 一.了解 强引用、软引用、弱引用、虚引用的概念 在J
我有一个我在标题中提到的问题。 根据这个答案,它确实出现在ViewController中的ViewDidAppear中。但是如何将这段代码导入java,如果我想在游戏结束后更改旋转,那么在哪里调用它。 我试着这样做: 卡住了,因为我需要NSObject...
下面的方法位于类中,后台线程每60秒调用一次。它将ping一个套接字,检查它是否处于活动状态,并将所有内容放在映射中。 另外,我在同一个类中有以下方法。方法将由多个读取线程(假设最多10个线程)同时调用,以获取下一个活动的套接字。 如果计时器线程在方法中的上工作,那么所有这10个线程都应该在其他活动套接字上工作(这10个线程中的每一个都在不同的活动套接字上工作) 和所有这10个线程应该始终在不同的
我创建了一个静态变量来保存应用程序上下文,因为我要在课堂上的其他地方使用它。这个变量被分配到类的构造函数中,我得到了以下错误——“不要将Android上下文类放在静态字段中(静态引用MyClass,其中字段appContext指向上下文);这是内存泄漏(也会中断即时运行)[StaticFieldLeak]。” 下面是MyClass中的代码: 为了解决这个问题,我考虑将appContext作为弱引用
我在OpenGL中有一个立方体。我用旋转矩阵乘以立方体旋转。我还使用gluLookAt使相机在x轴上围绕立方体旋转,如下图所示。 哪里 我正在努力让相机在围绕y轴旋转的立方体上下旋转。
假定你需要写一个函数,它使用name这样一个参数,打印当前日期和具体时间到日志中,然后将name加入到一个全局数据结构中。你可能写出来这样的代码: std::multiset<std::string> names; // global data structure void logAndAdd(const std::string& name) { auto now = std::chro