<action android:name="android.intent.action.MAIN" />
--表征该应用显示在程序列表里(如果不写这个,则不会显示)
<category android:name="android.intent.category.LAUNCHER" />
--表征该Activity是程序启动时的默认界面
<category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT"/>
--这两个必须同时存在,才能将一个Activity声明为Launcher
AppWidgetProvider中的各个方法的执行顺序或时机
--// onDeleted:回调 ACTION_APPWIDGET_DELETED 的系统消息,当一个或多个Widget被从桌面移除时触发
--// onDisabled:回调 ACTION_APPWIDGET_DISABLED 的系统消息,当最后一个Widget被移除时触发
--// onEnabled:回调 ACTION_APPWIDGET_ENABLED 的系统消息,当第一个Widget初始化时触发
--// onReceive:回调所有系统消息,充当Dispatcher的角色。通常不需要实现这个方法,因为缺省的实现就能过滤所有所有广播,并恰当的调用上述方法。
--// onUpdate:回调 ACTION_APPWIDGET_UPDATE 的系统消息,该方法原本是根据<appwidget-provider>中定义的android:updatePeriodMillis的时间间隔定时触发的,但从1.5之后,为了省电,该属性设置了强制默认最小值,大概在半小时到一小时触发一次,因此只有在获取天气信息等对实时性要求不高的信息时有实用价值。
另外,当添加Widget到桌面的时候,也会触发该方法。因此很适合在该方法中添加一些初始化设置的代码,例如为View视图定义时间回调,或是开启新的Service。
需要注意的是,如果定义了一个Configure,第一次的update动作会由Configure完成,而onUpdate方法不会启动。