我在我的应用程序中使用AlarmManager,如下所示:
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), AlarmManager.INTERVAL_HALF_DAY, intent);
Run Code Online (Sandbox Code Playgroud)
我期望在每次触发后12到24小时之间触发警报.但是,特别是在HTC设备上的行为相当奇怪:
每次触发警报时,我们都会向服务器发送HTTP请求.在所有设备上,我们都会看到随着时间的推移统一到服务器的请求,但是在HTC设备上每10分钟(XX:10,XX:20,......)都会出现峰值:

这些尖峰的原因是什么?为什么它只能在HTC设备上?
根据文档,作业必须具有每个uid的唯一作业ID.
如果我使用第三方库也安排工作,这是否意味着我不能使用与他们相同的工作ID?如果是这样,我怎样才能避免这种碰撞?
我是所有内存管理主题的新手,所以有很多我不理解的东西.
我正在尝试在我的应用程序中缓存图像,但我的内存消耗有问题:
所有的Bitmap Chaching代码都是从这里复制粘贴的:http://developer.android.com/training/displaying-bitmaps/index.html
我调试了代码并在eclipse的DDMS视图中检查了堆大小,在这些代码行之后大约有15mb的跳转:
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(res, resId, options);
Run Code Online (Sandbox Code Playgroud)
在"decodeSampledBitmapFromResource"方法中.
图像是1024x800,75kb jpg文件.根据我在互联网上已经看到的内容,这个图像应该占用的内存量大约是1024*800*4(每像素字节数)= 3.125mb
关于这个主题的所有线程都没有说明为什么它会占用更多的内存.有没有办法用合理数量的内存缓存一个图像?
编辑
我尝试使用@ ArshadParwez下面的答案中建议的decodeFile方法.使用此方法,在BitmapFactory.decodeStream方法之后,内存仅增加了3.5mb - 问题解决了,但是我想直接从资源缓存位图.
我注意到在decodeResource方法中有2个内存"跳转" - 一个大约3.5mb - 这是合理的,另一个奇怪的是14mb.那些14mb用于什么,为什么会发生这种情况?
在 Android O中新的"固定快捷方式"功能的文档中,他们提到"您还可以创建一个专门的活动,帮助用户创建快捷方式,完成自定义选项和确认按钮".
我尝试按照文档进行操作,但是当我尝试创建新的快捷方式时,我只看到了默认对话框,而不是我的活动.
这是Manifest中的声明:
<activity android:name=".ShortcutActivity">
<intent-filter>
<action android:name="android.intent.action.CREATE_SHORTCUT"/>
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
PS
在文档中,他们还在Gmail应用程序中显示了一个示例 - 如何进入该屏幕?我想看看流程,但我找不到它.
我注意到在以下两种情况下:
PutObject到加密的存储桶。SendMessage加密队列。我需要有kms:Decrypt权限(除了kms:GenerateDataKey权限之外),否则会抛出“未经授权”的异常。
为什么会这样呢?
encryption amazon-s3 amazon-sqs amazon-web-services amazon-kms
根据文档,Android O服务将在应用程序不再位于前台几分钟后停止.
该文档表明,大多数服务都可以替换为JobScheduler作业.我的问题是 - 工作也有任何特殊行为,或者他们的行为与Android O之前的服务相同吗?他们可以"永远"生活(当然,只要系统不需要内存),或者系统是否也会在某个窗口结束时将其杀掉?
android ×5
java ×2
alarmmanager ×1
amazon-kms ×1
amazon-s3 ×1
amazon-sqs ×1
bitmap ×1
caching ×1
encryption ×1