- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
经过 3 天的小部件学习,我终于了解了 setOnClickPendingIntent、RemoteViews...,并且完成了我的小部件。它是在许多教程的帮助下完成的。但现在我想测试它是否有效。在我阅读时,最小更新率为 30 分钟。另一种方法是使用 AlarmManager。但是我找不到 AlarmManager 的任何例子。我等了 30 分钟后,什么也没发生。我改变了一些东西,还在等待它改变......
有什么方法可以更快地测试它吗?
<?xml version="1.0" encoding="utf-8" ?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="65dip"
android:minHeight="30dip"
android:updatePeriodMillis="180000"
android:initialLayout="@layout/main" />
计数控件
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.widget.RemoteViews;
public class CountWidget extends AppWidgetProvider {
private static final int[] IMAGES = { R.drawable.die_1, R.drawable.die_2,
R.drawable.die_3, R.drawable.die_4, R.drawable.die_5,
R.drawable.die_6 };
public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
public static String ACTION_WIDGET_CONFIGURE = "ConfigureWidget";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
ComponentName me = new ComponentName(context, CountWidget.class);
appWidgetManager
.updateAppWidget(me, buildUpdate(context, appWidgetIds));
// обновляем виджет
// appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
}
private RemoteViews buildUpdate(Context context, int[] appWidgetIds) {
// Создаем новый RemoteViews
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.main);
remoteViews.setImageViewResource(R.id.left_die, IMAGES[(int) (Math
.random() * 6)]);
// Подготавливаем Intent для Broadcast
Intent configIntent = new Intent(context,
CountWhatYouWantActivity.class);
configIntent.setAction(ACTION_WIDGET_CONFIGURE);
// создаем наше событие
PendingIntent configPendingIntent = PendingIntent.getActivity(context,
0, configIntent, 0);
// регистрируем наше событие
remoteViews.setOnClickPendingIntent(R.id.left_die, configPendingIntent);
return (remoteViews);
}
最佳答案
这可能有帮助:
private static Intent updateIntent = new Intent();
{
updateIntent.setAction(WidgetProvider.ACTION_WIDGET_UPDATE);
updateIntent.setData(Uri.withAppendedPath(Uri.parse(WidgetProvider.URI_SCHEME + "://widget/id/"), ""));
}
private void setAlarm(Context context) {
PendingIntent newPending = PendingIntent.getBroadcast(context, 0, updateIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Time now = new Time();
now.setToNow();
long nowMillis = now.toMillis(false);
long nextMillis = ((nowMillis / 60000) * 60000) + 60000;
AlarmManager alarms = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
// set the repeating real time clock minute synchronised alarm
alarms.setRepeating(AlarmManager.RTC_WAKEUP, nextMillis, 60 * 1000, newPending);
}
在 AppWidgetProvider 的 onEnabled() 方法中调用 setAlarm() 函数。
关于android - 如何测试我的小部件的 onUpdate 方法不等待 30 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6807500/
这个问题在这里已经有了答案: How can I use an action to determine a control's visibility? (3 个回答) 7年前关闭。 当我通过将连接的
所以,我开发了一个 android 小部件,它应该用作按钮。我使用了这里给出的基本代码:http://developer.android.com/guide/topics/appwidgets/ind
我试图声明 create_time和 update_time MySQL 数据库中具有高精度(毫秒/微秒精度)。问题是我找不到正确的语法/函数来运行这两个要求。 到目前为止的假设/挖掘: 我找到了My
我有一个文章模型,它会根据它的标题有 slug,模型是这样的: from sqlalchemy.ext.declarative import declarative_base from sqlalch
当我更新数据库版本时,它并没有删除所有的表(以为我会是默认行为)。我还需要做其他事情吗? 最佳答案 您使用的是哪个 SQLiteOpenHelper? 检查生成的 DaoMaster 类。它有一个内部
我想制作一个类似于 Widget 的 CountDown 计时器。我希望它每秒更新一次。下面是我的代码。 onUpdate() 根本不会被调用,除了开始时调用一次。请指出我的问题。提前致谢。 JAVA
我正在为我的应用程序开发一个小部件。小部件名称是历史记录,当用户浏览任何 URL 时,我会将其存储在本地数据库中,从中列出哪个小部件。 当我打开小部件时,它会从本地数据库中获取所有详细信息并将其显示在
public class VWid extends AppWidgetProvider { public static String WIDGET_UPDATE = "WIDGET_UPDAT
我正在为 SQLAlchemy 开发一个 Audit mixin,但不确定具体该怎么做。 我的类(class)是这样的: class AuditColumns(object): created
我想创建一个具有两种小部件尺寸(4x2 和 4x4)的应用。 为此,我创建了两个接收器:
我有一个循环函数的情况,找不到解决方案。 有一个集合,其中有一个标志,表明数据是否已更改。还想记录更改。 export async function landWrite(change, context
在Delphi XE7中,我使用这个技巧根据ListView中的项目是否被选择来自动启用或禁用工具栏按钮(“编辑ListView项目”),以防止用户单击该按钮(如果有)没有选择 ListView 项目
我是 javascript 和 google 云函数的新手。我遵循了文档,但仍然不知道为什么 orderdata 返回未定义。 exports.updateordersumry = functions
UIView animatWithDuration对completion有一个可选参数,但是我对update需要一个参数 整个想法是我需要一个在动画的每个帧上运行的块。我想我可以用NSInterval
我想更新名为 recipes 的集合中文档中的两个字段,我使用了批量更新来完成它: let recipeRef = db.collection('recipes').doc(`${recipeId}`
我对 android appwidget 的 onUpdate 函数有疑问:我每天使用该函数更新一次 appwidget。在此之前,我使用 TimerTask 类来更新小部件,但 Android 有时
我一直在查看这个文档: http://andengine-doc.googlecode.com/hg/org/anddev/andengine/entity/modifier/SequenceEnti
我试图在升级时删除我的表,它会删除空表,但如果表中有行 - 它不会被删除。 我尝试了以下代码来首先清理表格: @Override public void onUpgrade(SQLiteDatabas
我的应用程序中有一个小部件,每次我安装/删除/更新第 3 方应用程序,因为 onUpdate() 方法可能被调用并且我编写的代码未正确执行。 可以肯定的是,AppWidgetManager 会响应以下
我的应用程序小部件从不转到 onUpdate 函数我添加了 3000 mili 用于测试,但除了第一次添加它之外,它永远不会进入 onUpdate 函数。 我做错了什么? 我的 list 文件:
我是一名优秀的程序员,十分优秀!