小编Nik*_*mbe的帖子

无论设置的时间是什么,在1分钟后,AlarmManager的setRepeating()会重复(在这种情况下为5秒,API 18+)

我将重复时间设置为5秒.第一次吐司在5秒后出现,但下一次在1分钟后重复一次.
我也尝试了使用setRepeating()的代码,它仍然不起作用.
这是我的代码:

public void constructJob(){

    Intent alertIntent = new Intent(this, AlarmManagerService.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(
            this, 0,
            alertIntent,
            PendingIntent.FLAG_UPDATE_CURRENT);

    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    alarmManager.setInexactRepeating(
            AlarmManager.RTC_WAKEUP,
            GregorianCalendar.getInstance().getTimeInMillis(),
            repeatTime(),
            pendingIntent
    );

}

public long repeatTime(){
    return 5000;
}
Run Code Online (Sandbox Code Playgroud)

AlarmManagerService.java

public class AlarmManagerService extends BroadcastReceiver {
      @Override
      public void onReceive(Context context, Intent intent) {
             Toast.makeText(context, "5 seconds have passed",
                            Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)

android alarmmanager

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

Room DB,将 ASC 或 DESC 作为参数传递

我有一个房间数据库设置。并有以下查询(按原样工作正常):

@Query("SELECT * FROM " + TABLE_REPORT
        + " WHERE " + COLUMN_CLASS_ID + " =:classID"
        + " ORDER BY CASE :orderByColumnName"
        + " WHEN 'maths' THEN maths"
        + " WHEN 'physics' THEN physics"
        + " WHEN 'history' THEN history"
        + " END"
        + " DESC")
List<ResultEntity> getClassResult(long classID, String orderByColumnName); // , String orderBy);
Run Code Online (Sandbox Code Playgroud)

我想取消对最后一行的注释并在函数中包含orderBy参数并将“DESC”替换为“:orderBy”,这样我就可以按orderBy对列表进行排序,这将是 ASC 或 DESC。

我试着做我上面解释的。但它似乎不起作用。

显示的错误是:“ASC、BETWEEN、COLLATE、DESC、IN、LIMIT、逗号或分号,找到:orderBy”

我怎样才能让它工作?提前致谢。

sqlite android android-room

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

标签 统计

android ×2

alarmmanager ×1

android-room ×1

sqlite ×1