【发布时间】:2010-09-07 07:30:48
【问题描述】:
为了生成通知,我需要了解如何以编程方式生成电池电量不足和内存不足的中断。谁能提供您的建议。我知道 Intents。
【问题讨论】:
-
您需要在代码中覆盖
onTrimMemory(int level)以处理内存事件。
标签: android
为了生成通知,我需要了解如何以编程方式生成电池电量不足和内存不足的中断。谁能提供您的建议。我知道 Intents。
【问题讨论】:
onTrimMemory(int level) 以处理内存事件。
标签: android
触发onTrimMemory 回调:
adb shell am send-trim-memory <process-name> <level>
例如adb shell am send-trim-memory com.example.app MODERATE
【讨论】:
RUNNING_CRITICAL 以获得完整的效果。
adb shell am send-trim-memory com.myapp MODERATEError: Failure to set the level - probably Unknown Process: com.myapp。知道为什么吗?那个包肯定存在。另外,我很难找到有关该命令的文档。
RUNNING_CRITICAL 有效。
还可以使用设备开发者选项下的Background process limit 模拟低内存。
转到Settings > Developer options。在app 部分下,将Background process limit 更改为No background processes
现在,每次您切换到另一个应用时,您的活动都会被终止。用于测试状态保存和状态恢复。
【讨论】:
是的,如果您向 ComponentCallback2 注册上下文,特别是 ComponentCallback2#onTrimMemory,此 API 会触发相同的回调,这里没有提到,所以我想我会说清楚。此命令的语法是:
am send-trim-memory [--user <USER_ID>] <PROCESS> [HIDDEN|RUNNING_MODERATE|BACKGROUND|RUNNING_LOW|MODERATE|RUNNING_CRITICAL|COMPLETE]
注意:此命令仅适用于运行 Marshmallow+ 的设备
【讨论】:
在安卓模拟器上你可以set the power status by connecting to the Emulator console and using the power command.
就内存不足而言,您只需要确保您的应用程序可以在后台处理被杀死而不会发出警告。测试这是在 Android 上实际需要任务管理器的极少数情况之一,或者如果您运行的是 Android 2.2,您可以通过设置终止应用程序。
There are ways of reducing the memory available to applications 但我认为它们是不必要的。
【讨论】:
要模拟低电量警告,请按照 Frank 回答的方式尝试此命令:
power capacity 10 // It will set the battery level into 10%
内存不足:
ulimit -Sv 15000 //The current memory limit will set to 15000 Kb
【讨论】:
adb shell ulimit -Sv 15000运行它
您可以使用的模拟器菜单是shown on my blog posting。只需在模拟器端口(默认为 5554)上 telnet 到 localhost,然后输入帮助。按照那里的说明进行操作!
【讨论】: