小编use*_*er1的帖子

AlarmManager 行为不一致(警报多次触发,或根本不触发)

我有一个使用 AlarmManager.setRepeating 设置警报的按钮和另一个删除警报的按钮,每次设置警报时,都会迭代 PendingIntent 中的 requestCode,以免将其与已设置和取消的警报混淆(应用程序以后会同时设置多个闹钟)。当我设置闹钟(setRepeating)时,有时它会按预期工作,有时它会比原定的时间快两次,2-3分钟后(我在未来3-5分钟设置闹钟)为了我的测试)。

另请注意:我已插入设备并将屏幕设置为保持唤醒状态,在测试过程中,应用程序通常始终位于前台,有时我将其置于后台或旋转屏幕(通常是错误的)。

我尝试过 setExact() 但我不介意它是否会关闭 0-5 分钟,但我确实需要它关闭而不重复。

我已经尝试过将初始时间设置为在前一天的小时和分钟开始,我希望它关闭,十天前和一百天(只是为了看看会发生什么)类似的结果也是如此。

我使用 Joda DateTime 获取 setRepeating 方法的闹钟时间的毫秒数,并使用 AlarmManager.INTERVAL_DAY 设置下一个闹钟的时间间隔(我的闹钟需要每 24 小时响起一次)

requestCode 是一个常量 int,我在测试期间递增并跟踪它。我从活动中的 getBaseContext() 获取的上下文

我设置闹钟的代码:


        Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
        intent.putExtra(ALARMS_INDEX_KEY,requestCode);
        PendingIntent sender = PendingIntent.getBroadcast(context, requestCode, intent, 0);
        AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);//After after 5 seconds
        addAlarmIndex(context, requestCode);
        //test: DateTime.now().minusDays(10).withTimeAtStartOfDay()
        DateTime set_for = DateTime.now().withTimeAtStartOfDay().withHourOfDay(14).
                withMinuteOfHour(34).withSecondOfMinute(0).
                withMillisOfSecond(0);


        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, set_for.getMillis(), AlarmManager.INTERVAL_DAY , sender);

Run Code Online (Sandbox Code Playgroud)

我取消闹钟的代码:


            Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
            PendingIntent sender = PendingIntent.getBroadcast(context, requestCode, intent, 0);
            AlarmManager …
Run Code Online (Sandbox Code Playgroud)

java android alarmmanager

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

在页面上的可滚动组件中反应 InfiniteScroll

我正在尝试在具有固定高度的 div 中构建一个无限滚动,并附加一个滚动条,所以我的目标是让窗口不移动,而是让其中的组件具有滚动条,并且其中的项目可以无限添加。

这是我到目前为止所拥有的:

import React, { useState } from "react";
import ReactDOM from "react-dom";
import InfiniteScroll from "react-infinite-scroll-component";

const style = {
  height: 18,
  border: "1px solid green",
  margin: 6,
  padding: 8
};

const DoseListCardBody = () => {
  const [items, setItems] = useState(Array.from({ length: 20 }));

  const fetchMoreData = () => {
    setItems(items.concat(Array.from({ length: 10 })));
  };

  return (
    <div style={{ height: "100%", overflowY: "scroll" }}>
      <InfiniteScroll
        dataLength={items.length}
        next={fetchMoreData}
        hasMore={items.length < 200}
        loader={<h4>Loading...</h4>}
      >
        {items.map((i, index) => ( …
Run Code Online (Sandbox Code Playgroud)

infinite-scroll reactjs

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

android canvas绘制文本部分

在画布上是否可以绘制文本但不显示其中的一半(好像它部分绘制在画布之外,但实际上并未离开画布)。我在带有一些文本的“图形”上有一个指示器,它遵循这一点,但我不希望将文本从图形部分中绘制出来(我正在绘制该区域之外的其他内容)。

我在画布后面的布局上也有一个背景,所以我不能只用位图绘画,因为这会导致一些纵横比/大小问题(看起来不太好)。


我试过在谷歌、堆栈溢出和实验中寻找答案,但无济于事。在谷歌上,我发现了很多关于在 android 画布上绘制文本的有趣的事情,但没有我想要的东西,我很困惑,我开始认为我想要的东西甚至不可能,我可能需要绘制文本自定义积分或找出看起来同样好的替代方案。

android drawtext android-canvas

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