小部件 setOnClickPendingIntent 未启动服务

2023-12-19

遵循示例here http://developer.android.com/guide/topics/appwidgets/index.html我轻松创建了我的小部件。

然后我向我的小部件添加了一个按钮,该按钮应该启动一个服务,因此我将以下代码添加到我的 WidgetProvider

@Override
public void onEnabled(Context context) {
    Log.e("ERROR", "REMOVE ME"); // TODO remove. This is for eclipse logcat recognition
    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);

    Intent intent = new Intent(context, RepairService.class);
    PendingIntent pi = PendingIntent.getService(context, 0, intent, 0);
    views.setOnClickPendingIntent(R.id.widget_boost, pi);
}

该代码肯定会被调用,但服务不会启动。我确信我可能错过了服务 PendingIntent 的实现,但我看不到什么。还有人知道吗?


好吧,我已经解决了它

public class WidgetProvider extends AppWidgetProvider {

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

    Log.e("ERROR", "onUpdate method called");

    final int N = appWidgetIds.length;

    // Perform this loop procedure for each App Widget that belongs to this provider
    for (int i=0; i<N; i++) {
        int appWidgetId = appWidgetIds[i];

        // Create an Intent to launch ExampleActivity
        Intent intent = new Intent(context, UpdateService.class);
        PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
        Log("Pending Intent = " + pendingIntent.toString());

        // Get the layout for the App Widget and attach an on-click listener to the button
        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
        views.setOnClickPendingIntent(R.id.widge, pendingIntent);

        // Tell the AppWidgetManager to perform an update on the current App Widget
        appWidgetManager.updateAppWidget(appWidgetId, views);
    }

}

public static class UpdateService extends Service {

    @Override
    public void onCreate() {
              .........
              .........
           }

           // Service stuff here
   }
}

我不完全确定在 onEnable 中这样做有什么问题。也许有人可以解释为什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小部件 setOnClickPendingIntent 未启动服务 的相关文章

随机推荐

  • 生成单词所有变体的算法

    我想通过以下示例来解释我的问题 假设单词 abc a 有变体 b 没有变体 c 有变体 所以可能的词是 abc bc bc ab b b 现在我正在寻找一种算法 可以打印具有任意字母变体的任意单词的所有单词变体 我建议你递归地解决这个问题
  • Flutter SVG 渲染

    我尝试将带有 SVG 源的图像添加到我的 flutter 应用程序中 new AssetImage assets images candle svg 但我没有得到任何视觉反馈 如何在 Flutter 中渲染 SVG 图片 对于很多情况来说
  • 如何使用 isinstance 测试所有可能的整数类型

    使用整数时 有多种可用类型 例如 int numpy int8 numpy int16 等 如果我编写一个通用函数 要求一个变量为整数 我如何针对 Python numpy 中所有可能的 整数 类型测试该类型 关于浮动也可以提出同样的问题
  • 是否可以在文字上而不是接口上使用“keyof”运算符?

    我有一个如下所示的对象文字 所有属性在编译时都是已知的 const foo hello hola If foo是一个接口而不是一个变量 我可以轻松地做类似的事情 THEORETICAL ONLY Does not compile funct
  • 如何在视频索引器 api 中使用 python 上传视频文件?

    我正在尝试使用 Python 在 Video Indexer API 中上传视频 import http client urllib request urllib parse urllib error base64 headers Requ
  • 谷歌代码下载源码

    这可能是一个非常愚蠢的问题 但对于我来说 我不知道如何下载它 http code google com p xmppframework source browse hg 253Fstate 253Dclose http code googl
  • 如何将数组中的值作为变量引用?

    例如 如果我有数组 DeviceArray Array Sw Cap Gen Reg Tr Br 我想将所有内容初始化为诸如 0 之类的值 这相当于为此编写一个 for 循环 以便将数组中的值视为变量名 以便我可以间接修改变量值 For i
  • 有没有办法限制 firebase 中的注册

    有没有办法限制用户注册 firebase 电子邮件 密码帐户 以便新用户无法注册 我有一个小应用程序 只有少数管理员需要访问 我在 Firebase 管理员中手动创建的 并且它现在的设置方式似乎任何人都可以注入一些 javascript 并
  • 如何确定元组是否包含类型?

    假设我想创建一个编译时异构容器unique来自某些非唯一类型序列的类型 为了做到这一点 我需要迭代源类型 某种tuple 并检查每种类型是否已存在于我的 唯一 元组中 我的问题是 如何检查元组 或boost fusion容器 包含一个类型
  • 为什么要在匿名 function() 调用中嵌入 JavaScript 类?

    我正在阅读有关 Microsoft 的新的类似 JavaScript 的语言 称为打字稿 http www typescriptlang org 在里面游乐场 示例部分 http www typescriptlang org Playgro
  • 可以反向播放皮肤动画吗? [三.js]

    我将如何向后播放动画 我尝试给动画处理程序提供负增量 但这只会阻止它 从动画的 this currentTime 中减去增量也不起作用 有任何想法吗 Since 三 js r69 https github com mrdoob three
  • AzureB2C 自定义策略:无效请求,提供的 id_token_hint 参数不包含接受的颁发者

    我只是按照页面上的教程创建了一个证书并将其公开给 azure 门户 我还上传了策略文件并与我的租户一起修改了它们 我正在本地主机上运行该应用程序 但是当我想浏览到该链接时 我在 jwt ms 中收到以下错误 AADB2C90232 The
  • 经典 ASP - 无法从 AJAX Post 请求获取 Request.Form 值

    我有一个通过 AJAX 提交表单 POST 请求的脚本 当我查看网络选项卡时 它以下面的格式返回 我无法使用标准格式读取该格式Request Form在经典 ASP 中 由于 AJAX 请求 我看到此服务器变量也添加到页面请求中 HTTP
  • jQuery 中提供了哪些钩子?

    仅限官方 cssHooks记录在jQuery API 文档 http api jquery com jQuery cssHooks and valHooks在句子中提到了已知问题的解决方法 val http api jquery com v
  • CAScrollLayer 不滚动!

    也许是因为来晚了 不管出于什么原因 我无法弄清楚为什么我在尝试使用简单的 CSScrollLayer 示例时遇到问题 我将一个 50 像素的 Eclipse 图标添加到基于视图的项目中 并在我的初始化方法中 从 initWithNibNam
  • 在 Symfony 上设置 Redis 缓存前缀键

    我正在使用 Redis 来管理 Symfony 3 4 应用程序中的一些缓存 配置如下 配置 yml framework cache default redis provider redis 127 0 0 1 6379 pools cac
  • 如何防止第一次点击时的链接操作并仅使用 jquery 允许第二次点击

    我正在努力寻找类似于我之前已经发布的问题的解决方案 但该问题没有准确的解决方案 如果您在移动设备上查看此网站 http www adfinity co za business partners http www adfinity co za
  • ArchitecturesAllowed Inno Setup指令是否涉及CPU架构或操作系统架构?

    我的 64 位应用程序需要安装在 64 位 Windows 操作系统上 所以我在中添加了这两行 Setup 部分 Setup ArchitecturesAllowed x64 ArchitecturesInstallIn64BitMode
  • 仅从 Cron 运行 php 脚本或检查是否来自 cron 的请求?

    如何仅从 cron 运行 php 脚本 或者是否可以检查请求是否来自 cron ED T 我正在尝试使用参数调用 php 文件 但它们都不起作用 php q home domain public html cronjob php i a p
  • 小部件 setOnClickPendingIntent 未启动服务

    遵循示例here http developer android com guide topics appwidgets index html我轻松创建了我的小部件 然后我向我的小部件添加了一个按钮 该按钮应该启动一个服务 因此我将以下代码添