小编Gol*_*ene的帖子

Android AlarmManager setExact()并不准确

我需要每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);

android alarmmanager

20
推荐指数
5
解决办法
2万
查看次数

IntelliJ IDEA查找方法覆盖

假设我有init()一些方法MyBaseClass.

有没有办法在子类中快速找到此方法的覆盖

当然,我可以在整个项目中找到@Override void init,但也许有更聪明的方法?

overriding intellij-idea find

16
推荐指数
1
解决办法
3554
查看次数

Android Studio SuppressLint"ClickableViewAccessibility"无效

在某些情况下,我想在我的ScrollView上禁用滚动.
要做到这一点我使用.setOnTouchListener,并返回trueonTouch.

3.0工作室给我提示我应该覆盖performClick方法,我不想这样做.

当我点击alt+enter它时,我可以选择压制此警告,它会增加@SuppressLint("ClickableViewAccessibility")我的方法.

不幸的是,这不起作用 - 我仍然看到这个警告.
我也试过不同的组合//noinspection,但没有运气.

我怎么能压制这个棉绒警告?

android lint android-studio

14
推荐指数
1
解决办法
4769
查看次数

在AppseleratorStudio上构建iOS的问题[错误]:无效的"--device-id"值""

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)

ios appcelerator-titanium

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

Android studio git使用私钥

A有一个git存储库的地址.
我还有一个open-ssh格式的私钥.

Android Studio中的git是否可以使用它?
我试图搜索一些信息,但此时没有运气.

感谢您提供有用的信息!

编辑.我的步骤:
1.我将私钥放在.ssh文件夹(Users/user)中.
2.在Android工作室中我运行:文件 - 设置 - 版本控制 - Git并将路径放到Git可执行文件中.
在此输入图像描述
然后是VCS - 来自vesrion控制的结账 - Git.我把存储库地址放在那里.在此输入图像描述

如果我继续在这里,有:
在此输入图像描述

但我没有用户名和密码,只有密钥.
如果我尝试:
在此输入图像描述
得到以下:
在此输入图像描述

Android Studio如何知道它应该使用我的私钥而不是标准的id_rsa文件?

git ssh android-studio private-key

11
推荐指数
3
解决办法
2万
查看次数

Android Room Multimap 相同列名称的问题

正如官方文档中所述,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

聚苯硫醚。问题在于 UserDao_Impl.java 的生成方式: 在此输入图像描述
所有_id …

multimap android-room

9
推荐指数
1
解决办法
1570
查看次数

Android TabLayout自定义指标宽度

我想减少指标的宽度 - 例如,使其宽度不是整个标签宽度,而是标签宽度的1/2.
这就是我需要做的全部,所以我不想下载一些自定义库并搜索我可以做到的地方.

这是一种方法吗,或者我应该自己写这样的观点?

android android-viewpager android-tablayout

7
推荐指数
3
解决办法
9780
查看次数

Android获得API级别21中的UsageStatsManager

我需要获取有关最近的应用程序使用情况的信息。

在API 21之前,曾使用getRunningTasksgetRecentTasks来获取此信息。根据文档,API 21中不推荐使用这些方法。

UsageStatsManager类现在,API等级21推出
,但!Context.getSystemService(UsageStatsService)仅在API级别22中添加!

问题是- 如何在API 21中获取所需的数据?根据信息中心,在此API级别上有13%的用户,我不想失去他们。

android usage-statistics android-5.0-lollipop usagestatsmanager

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

Kotlin将带有nullables的List转换为没有nullables的HashMap

我有传入的参数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关键字?

collections nullable kotlin

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

当savedInstanceState为非null时的情况

如果我没有显式调用onSaveInstanceState(),哪些是可能性,何时savedInstanceState不为null onCreate

我看到一个选项,当系统在崩溃后重新创建我的应用程序时 - 然后savedInstanceState不是null.

还有哪些其他选择?

android android-lifecycle android-activity android-bundle android-savedstate

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