我需要每10分钟计划一次任务.
因为在Lollipop和更高版本setRepeating()是不精确的,我使用setExact()和(在警报发射)我在10分钟内设置新的确切警报.
private void setAlarm(long triggerTime, PendingIntent pendingIntent) {
int ALARM_TYPE = AlarmManager.ELAPSED_REALTIME_WAKEUP;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
alarmManager.setExact(ALARM_TYPE, triggerTime, pendingIntent);
} else {
alarmManager.set(ALARM_TYPE, triggerTime, pendingIntent);
}
}
Run Code Online (Sandbox Code Playgroud)
triggerTime 计算 SystemClock.elapsedRealtime() + 600_000;
当警报触发时,首先我计划新警报,然后我才会执行我的计划任务.
setAlarm();
mySheduledTask;
Run Code Online (Sandbox Code Playgroud)
WAKE_LOCK我的清单中有权限.
当我在Android 4上测试它时 - 它工作得很完美(偏差可能是12-15 毫秒).
但是当我在小米Redmi Note 3 Pro(5.1.1)上运行应用程序时 - 偏差可能长达15秒!
例如,我在我的日志文件中看到:第一次运行是在1467119934477(RTC时间),第二次是在1467120541683.差异是607_206毫秒,而不是600_000,因为它是计划好的!
我错过了什么?什么是模拟系统警报行为的方法(它是可以描述我的大头钉的最接近的用例)?
PS.我使用IntentServicePendingIntent = PendingIntent.getService(context, 0, myIntent, 0);
假设我有init()一些方法MyBaseClass.
有没有办法在子类中快速找到此方法的覆盖?
当然,我可以在整个项目中找到@Override void init,但也许有更聪明的方法?
在某些情况下,我想在我的ScrollView上禁用滚动.
要做到这一点我使用.setOnTouchListener,并返回true在onTouch.
3.0工作室给我提示我应该覆盖performClick方法,我不想这样做.
当我点击alt+enter它时,我可以选择压制此警告,它会增加@SuppressLint("ClickableViewAccessibility")我的方法.
不幸的是,这不起作用 - 我仍然看到这个警告.
我也试过不同的组合//noinspection,但没有运气.
我怎么能压制这个棉绒警告?
AppseleratorStudio(Titanium),内容:4.6.0.201605201934
MacBook Pro
iPad mini,OS 8.1.
看到类似的问题,但没有给出很多答案,大多数问题都与Android有关.如有必要,愿意提供更多信息.
2016-08-22T08:48:24.385Z | DEBUG | getTiDefaultPath /Users/at/Library/Application Support/Titanium
2016-08-22T08:48:24.386Z | DEBUG | active sdk install path /Users/at/Library/Application Support/Titanium
2016-08-22T08:48:26.476Z | DEBUG | to download {"modules":[{"oses":["linux","win32","osx"],"platforms":["iphone","android"],"required":true,"partner_id":"A0B129A418829127EC551EB8ADB0D1CC","partner_name":"Appcelerator","name":"Hyperloop","description":"Gain complete access to native APIs in your Titanium mobile applications.","id":"hyperloop","guid":"99a136cd-4e51-40da-bcdb-d514f5895fb5","version":"1.2.6","url":"http://appcelerator-modules.s3.amazonaws.com/hyperloop-1.2.6.zip","min_mobilesdk_version":"5.4.0"}],"components":[]}
[ERROR] : Invalid "--device-id" value ""
Available iOS Devices:
814afcb29c793aea10b182b53f3f629b73ed1a39 iPad mini
itunes iTunes Sync
For help, run: titanium.js help build
Run Code Online (Sandbox Code Playgroud)
Upd1.在构建命令中添加了设备ID,结果如下:
[INFO] Invoking xcodebuild
[ERROR] BUILD FAILED
[ERROR] The following build commands failed:
[ERROR] CodeSign build/Products/Debug-iphoneos/Anna-inzicht.app
[ERROR] …Run Code Online (Sandbox Code Playgroud) 正如官方文档中所述,Android Room 数据库最好使用 Multimap 返回类型。
对于下一个非常简单的示例,它无法正常工作!
@Entity
data class User(@PrimaryKey(autoGenerate = true) val _id: Long = 0, val name: String)
@Entity
data class Book(@PrimaryKey(autoGenerate = true) val _id: Long = 0, val bookName: String, val userId: Long)
Run Code Online (Sandbox Code Playgroud)
(我相信很多开发人员的_id表中都有主键)
现在,在 Dao 类中:
@Query(
"SELECT * FROM user " +
"JOIN book ON user._id = book.userId"
)
fun allUserBooks(): Flow<Map<User, List<Book>>>
Run Code Online (Sandbox Code Playgroud)
虽然它应该有 2 个条目,因为相应的表中有 2 个用户。
附言。我目前使用的是最新的 Room 版本,版本 2.4.0-beta02。
我想减少指标的宽度 - 例如,使其宽度不是整个标签宽度,而是标签宽度的1/2.
这就是我需要做的全部,所以我不想下载一些自定义库并搜索我可以做到的地方.
这是一种方法吗,或者我应该自己写这样的观点?
我需要获取有关最近的应用程序使用情况的信息。
在API 21之前,曾使用getRunningTasks或getRecentTasks来获取此信息。根据文档,API 21中不推荐使用这些方法。
有UsageStatsManager类现在,API等级21推出
,但!Context.getSystemService(UsageStatsService)仅在API级别22中添加!
问题是- 如何在API 21中获取所需的数据?根据信息中心,在此API级别上有13%的用户,我不想失去他们。
android usage-statistics android-5.0-lollipop usagestatsmanager
我有传入的参数List<Somedata>.Somedataclass包含id字段.
我的目标是让HashMap<Somedata.id, Somedata>此list.
下一步方法是正确的还是有更好/更安全的方法来做到这一点?
list
.filter { it.id != null }
.associateTo(HashMap(), {it.id!! to it})
Run Code Online (Sandbox Code Playgroud)
实际上,我无法理解,为什么我应该!!在associateTo方法中使用关键字,上面我只用非空值过滤它.
或者也许有一个很好的方法来执行?.或?.let关键字?
如果我没有显式调用onSaveInstanceState(),哪些是可能性,何时savedInstanceState不为null onCreate?
我看到一个选项,当系统在崩溃后重新创建我的应用程序时 - 然后savedInstanceState不是null.
还有哪些其他选择?
android android-lifecycle android-activity android-bundle android-savedstate
android ×5
alarmmanager ×1
android-room ×1
collections ×1
find ×1
git ×1
ios ×1
kotlin ×1
lint ×1
multimap ×1
nullable ×1
overriding ×1
private-key ×1
ssh ×1