android - 强制 Android 小部件更新

标签 android android-widget

我一直在不懈地尝试通过按下小部件上的按钮来更新我的小部件。该小部件显示当前剩余的 RAM、CPU 级别和电池电量。

确定这些值的代码运行良好。当我按下按钮时,我无法让它更新。我试过这些方法:

Force Android widget to update - 显示了两种方法

Android: How do I force the update of all widgets of a particular kind

Clickable widgets in android

还有一个警报管理器

他们都没有工作。

我的小部件布局的 XML:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:background="@drawable/widgetbg">

        <TextView android:id="@+id/widgetCPU"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/derp"   
            android:textSize="14sp"
            android:typeface="sans"
            android:textColor="@android:color/holo_blue_bright"
            android:gravity="center"/>

        <TextView android:id="@+id/widgetRam"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/derp"   
            android:textSize="14sp"
            android:typeface="sans"
            android:textColor="@android:color/holo_blue_bright"
            android:gravity="center"/>

        <TextView android:id="@+id/widgetBat"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/derp"   
            android:textSize="14sp"
            android:typeface="sans"
            android:textColor="@android:color/holo_blue_bright"
            android:gravity="center"/>
        <Button android:id="@+id/widgetUpdate"
                android:layout_weight="1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/button_send" />

    </LinearLayout>

按下按钮时我想调用的方法:

    public class AppWidget extends AppwidgetProvider
    {
    //...
         public void update(Context c, AppWidgetManager a)
         { 
          //...
         }
    //...
    }

按下按钮时如何调用更新方法?

最佳答案

注册一个监听器,例如在你的 onCreate() 方法中:

     findViewById(R.id.widgetUpdate).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
                        update();
        }
    });

关于android - 强制 Android 小部件更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14298442/

相关文章:

View.getLeft() 与 View.getScrollX() 之间的区别

android - 一个安装两个应用程序的 .apk 文件

android - CATEGORY_BROWSABLE 的真正含义是什么?

android - 无法在 list 文件中注册广播接收器

android - 是否可以禁止从父 Activity 访问 fragment 的布局( View )?

android - BitmapDrawable 无法转换为 RoundRectDrawableWithShadow

android - 在多个 TextView 中使用时选取框不起作用

android - mdpi hdpi xhdpi 2x2 4x4 的小部件图标大小

android - 模拟器上没有通知声音

安卓单点登录