小编dac*_*ngy的帖子

这是Android上下文泄漏吗?

这是一段简化的代码:

static Activity longLivedField;

onCreate(...) {     
    longLivedField = this;  // the only write to this field
}
Run Code Online (Sandbox Code Playgroud)

我见过人们声称这是一个上下文泄漏,并为它创建修复程序.典型的解决方法是在适当的位置使字段无效.例如,在onPause():

onPause() {
    longLivedField = null;
}
Run Code Online (Sandbox Code Playgroud)

android memory-leaks

5
推荐指数
1
解决办法
779
查看次数

日历应用中的活动结束提醒

是否有日历应用程序允许用户设置事件结束提醒?假设我安排了两个小时的编程任务,我希望在整个过程中得到提醒 - 剩下15分钟,剩下5分钟,时间到了,30分钟等等.

此外,如果应用程序支持语音识别会更好.例如,我可以说"上午9点,我将编写2个小时的Java程序.当我的时间不足时提醒我",应用程序将知道要添加的条目.

time-management calendar

5
推荐指数
0
解决办法
1545
查看次数

在gcc中放置`-l'选项

-l在使用时放置选项有些麻烦gcc.这是一个用于重现问题的精简版本.

TC:

#include <pthread.h>

int main() {
    pthread_create(0, 0, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)

在终端:

$ gcc -lpthread t.c  
/tmp/ccmkwV7B.o: In function `main':  
t.c:(.text+0x29): undefined reference to `pthread_create'  
collect2: ld returned 1 exit status

$ gcc t.c -lpthread  
$ (compiles ok)
Run Code Online (Sandbox Code Playgroud)

为什么我必须-lpthread最终使它工作?而且似乎这个问题只发生在32位linux上.

我的环境信息附在下面:
gcc -lpthread t.c此机器出现故障.

$ gcc --version  
gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1  

$ uname -rm  
3.0.0-12-generic i686
Run Code Online (Sandbox Code Playgroud)

gcc -lpthread t.c 适用于这台机器.

$ uname -rm  
2.6.18-274.3.1.el5 x86_64  

$ gcc --version  
gcc (GCC) 4.1.2 20080704 (Red …
Run Code Online (Sandbox Code Playgroud)

linux gcc

3
推荐指数
1
解决办法
521
查看次数

onStop() 总是在调用 onPause() 时调用

是否有可能调用 onPause(),然后立即调用 onResume()?换句话说,在调用 onPause() 之后,活动是否总是必须经过 onStop()、onStart() 和 onResume()?

活动生命周期文档说这是可能的,但是触发它的用户操作是什么?任何人都可以创建一个活动 JUnit 测试来证明这一点吗?

android

3
推荐指数
1
解决办法
1773
查看次数

是否可以动态更改Android应用程序的权限集?

是否可以在应用程序级别?或者我们必须在操作系统内执行此操作吗?

人们可能希望这样做以减少攻击面.理想情况下,应用程序几乎在任何时候都应该只在需要时才具有权限,遵循"最小权限原则".

澄清:通过"改变",我的意思是暂时放弃某些权限,并在以后真正需要时重新获得它们.

security android

2
推荐指数
1
解决办法
358
查看次数

是onCreate()调用旋转

对于2.1以后的Android版本,是onCreate()调用旋转吗?我在onCreate()中放了一个日志打印,但它不打印2.3.3和4.0.3.

这是代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    Runtime runtime = Runtime.getRuntime();
    long free = runtime.freeMemory();
    long total = runtime.totalMemory();
    long occupied = total - free;

    Log.i("MEM", "heap: " + occupied);
}
Run Code Online (Sandbox Code Playgroud)

在2.1上,日志消息由于方向而多次打印; 在2.3.3上,它只打印一次.

android

2
推荐指数
2
解决办法
5169
查看次数