l_d_1421 2018-03-16 10:09 采纳率: 0%
浏览 1126
已结题

android 的 widget程序不会调用AppWidgetProvider

先上AndroidManifest

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.asdasdasd.zxczxczxc"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="16" 
        android:targetSdkVersion="23" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <!-- 声明widget对应的AppWidgetProvider -->

        <receiver android:name="com.asdasdasd.zxczxczxc.ExampleAppWidgetProvider"
            android:label="MyWidget"
            android:exported="true"
            android:permission="android.appwidget.action.APPWIDGET_UPDATE">  
    <meta-data  
        android:name="android.appwidget.provider"  
        android:resource="@xml/example_appwidget_info" >  
    </meta-data>  

    <intent-filter>  
                <action android:name="com.asdasdasd.zxczxczxc.UPDATE_ALL"/>
        <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>  
    </intent-filter>  
</receiver>
        <service android:name=".ExampleAppWidgetService" >
            <intent-filter>
                <action android:name="android.appwidget.action.EXAMPLE_APP_WIDGET_SERVICE" />
            </intent-filter>
        </service>
    </application>

</manifest>

这么配置完了之后,这个类里的函数却没有被调用

 public class ExampleAppWidgetProvider extends AppWidgetProvider {

    // 启动ExampleAppWidgetService服务对应的action
    private final Intent EXAMPLE_SERVICE_INTENT = 
            new Intent("android.appwidget.action.EXAMPLE_APP_WIDGET_SERVICE");
    // 更新 widget 的广播对应的action
    private final String ACTION_UPDATE_ALL = "com.asdasdasd.zxczxczxc.UPDATE_ALL";

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

    }

    @Override  
    public void onAppWidgetOptionsChanged(Context context,  AppWidgetManager appWidgetManager, int appWidgetId,  Bundle newOptions) {

        super.onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId,  
                newOptions);  
    }  

    @Override  
    public void onDeleted(Context context, int[] appWidgetIds) {  

        super.onDeleted(context, appWidgetIds);  
    }

    // 第一个widget被创建时调用  
    @Override  
    public void onEnabled(Context context) {  

        super.onEnabled(context);  
    }  

    // 最后一个widget被删除时调用  
    @Override  
    public void onDisabled(Context context) {  

        super.onDisabled(context);  
    }


    // 接收广播的回调函数
    @Override  
    public void onReceive(Context context, Intent intent)  {  

        super.onReceive(context, intent);  
    }  
}

有没有大佬知道的,不胜感激.
即使是我新建的项目简单配置后也是不行

  • 写回答

1条回答

  • threenewbee 2018-03-16 15:39
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥20 为什么我写出来的绘图程序是这样的,有没有lao哥改一下
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?