繁体   English   中英

一段时间后,锁屏小部件不起作用

[英]Lockscreen widget doesn't work after a while

嗨,我正在编程一个锁屏窗口小部件,它是不同的按钮和显示信息的文本,在添加窗口小部件或“最大化”或“最小化”(全屏或半屏模式可解锁)时以及电话刚刚打开,问题是当电话停顿一会儿时,按钮却什么也不做,我读了很多有关它的文章,但我没有发现问题。 我有CyanogenMod 11 [4.4.2]

<receiver
            android:name="com.example.widget"
            android:label="magicButtons" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/widget_provider" />
        </receiver>
        <receiver android:name="com.example.widgetReciber">
            <intent-filter>
                <action android:name="updateW"/>
            </intent-filter>
        </receiver>

Widget.java(不完全是这样):

@Override
public void onEnabled(Context context) {
    super.onEnabled(context);
    //Upgrade buttons
}
@Override
public void onUpdate(Context context,AppWidgetManager appWidgetManager, int[] appWidgetIds){
  super.onUpdate(context,appWidgetManager,appWidgetIds);
  //Upgrade buttons
}
@Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);
}

有点晚了,但是经过几个小时的调试,我才找到了解决方案(互联网上似乎没什么地方^^)。 显然,每当您锁定手机并且锁屏窗口小部件处于折叠状态时,Android就会调用onAppWidgetOptionsChanged()。 这将重新创建您的小部件。

为了防止小部件变得不可用,您必须像在onUpdate()中一样做同样的事情。

例:

public void onUpdate(Context context, AppWidgetManager manager,
        int[] appWidgetIds) {
    for(int a = 0; a < appWidgetIds.length; a++) {
        manager.updateAppWidget(appWidgetsIds[a], createWidget());
    }
}

public void onAppWidgetOptionsChanged(Context context, AppWidgetManager manager, 
        int appWidgetId, Bundle widgetOptions) {
    manager.updateAppWidget(appWidgetId, createWidget());
}

private RemoteViews createWidget() {
    //Create your Widget (aka RemoteViews) here! You might want to pass      
    //needed variables for creating the widget ;)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM