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 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题