gpt4 book ai didi

android - 制作每 6-8 秒更改内容的小部件的正确方法是什么,Android

转载 作者:太空狗 更新时间:2023-10-29 13:42:50 24 4
gpt4 key购买 nike

我想要完成的最接近的示例是“Engadget”小部件。它每 5-10 分钟从互联网更新一次数据,每 5-7 秒“滚动”一次故事。我想它将 5 -10 分钟的时间间隔设置为 widget's provider 以在没有内置限制的情况下调用 onUpdate,类似的东西..

AlarmManager alarms = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarms.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), updateRateSeconds * 1000, newPending);

然后是真正的问题.. 在不调用 onUpdate 的情况下更新小部件内容。

这里我想象小部件提供程序内部存在一个计时器或一个 Runnable,每次调用它时它都会用类似的东西重新安排自己

public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
...

mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 1000);
}

.

private Runnable mUpdateTimeTask = new Runnable() {
public void run() {

final long start = mStartTime;
long millis = SystemClock.uptimeMillis() - start;
int seconds = (int) (millis / 1000);


int minutes = seconds / 60;
seconds = seconds % 60;
...

mHandler.postAtTime(this,start + (((minutes * 60) + seconds + 1) * 1000));
}

然后在widget provider里面onDeletedonDisabled

我 removeCallbacks mHandler.removeCallbacks(mUpdateTimeTask);

这个方案有什么问题吗?我是否需要提供服务以从那里更新小部件并使其保持 Activity 状态,而无需将 AlarmManager 设置为小部件的配置?出于某种原因,我在 onUpdate 上收到两次调用,并且在我删除小部件后 runnable 继续运行。

最佳答案

看看ViewFlipper .您可以使用它为一组项目更新一次数据,然后设置它们的循环频率。

关于android - 制作每 6-8 秒更改内容的小部件的正确方法是什么,Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3782389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com