Android灏忛儴浠禬idget鎬庝箞浣跨敤
Android灏忛儴浠讹紙Widget锛夋槸涓€绉嶅彲浠ュ湪鎵嬫満妗岄潰涓婃樉绀轰俊鎭垨鎻愪緵蹇嵎鎿嶄綔鐨刄I缁勪欢銆備互涓嬫槸浣跨敤Android灏忛儴浠剁殑姝ラ锛?/p>
-
鍦ˋndroid椤圭洰鐨剅es/layout鏂囦欢澶逛笅鍒涘缓涓€涓柊鐨勫竷灞€鏂囦欢锛屽畾涔夊皬閮ㄤ欢鐨勬牱寮忓拰甯冨眬銆備緥濡傦紝鍙互鍒涘缓涓€涓猅extView鏉ユ樉绀轰俊鎭紝鎴栬€呭垱寤轰竴涓狟utton鏉ユ彁渚涘揩鎹锋搷浣溿€?/p>
-
鍦ˋndroid椤圭洰鐨剅es/xml鏂囦欢澶逛笅鍒涘缓涓€涓柊鐨剎ml鏂囦欢锛屽畾涔夊皬閮ㄤ欢鐨勫睘鎬у拰琛屼负銆備緥濡傦紝鍙互瀹氫箟灏忛儴浠剁殑澶у皬銆佽儗鏅壊绛夊睘鎬с€?/p>
-
鍦ˋndroidManifest.xml鏂囦欢涓0鏄庡皬閮ㄤ欢銆傚湪
鏍囩鍐呮坊鍔?receiver>鏍囩锛屽苟璁剧疆intent-filter浠ュ強action灞炴€с€備緥濡傦細 <receiver android:name=".MyWidgetProvider"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_info" /> </receiver>
-
鍒涘缓涓€涓户鎵胯嚜AppWidgetProvider鐨勭被锛岀敤浜庡鐞嗗皬閮ㄤ欢鐨勬洿鏂板拰浜嬩欢銆備緥濡傦紝鍙互鍦╫nUpdate鏂规硶涓洿鏂板皬閮ㄤ欢鐨勫唴瀹癸紝鎴栬€呭湪onReceive鏂规硶涓鐞嗗皬閮ㄤ欢鐨勭偣鍑讳簨浠躲€?/p>
public class MyWidgetProvider extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // 鏇存柊灏忛儴浠剁殑鍐呭 } @Override public void onReceive(Context context, Intent intent) { // 澶勭悊灏忛儴浠剁殑鐐瑰嚮浜嬩欢 } }
-
鍦╫nUpdate鏂规硶涓紝浣跨敤RemoteViews鏉ユ洿鏂板皬閮ㄤ欢鐨勫唴瀹广€備緥濡傦紝鍙互閫氳繃RemoteViews鐨剆etTextViewText鏂规硶鏉ユ洿鏂癟extView鐨勬枃鏈€?/p>
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout); views.setTextViewText(R.id.text_view, "Hello World"); appWidgetManager.updateAppWidget(appWidgetIds, views);
-
鍦╫nReceive鏂规硶涓紝鏍规嵁鐐瑰嚮浜嬩欢鐨勭被鍨嬫潵鎵ц鐩稿簲鐨勬搷浣溿€備緥濡傦紝鍙互閫氳繃Intent鐨刧etStringExtra鏂规硶鑾峰彇棰濆鐨勪俊鎭紝骞舵牴鎹俊鎭潵鎵ц涓嶅悓鐨勬搷浣溿€?/p>
String action = intent.getAction(); if (action.equals("my_custom_action")) { String extra = intent.getStringExtra("extra"); // 鎵ц鐩稿簲鐨勬搷浣?/span> }
鍦ㄥ畬鎴愪互涓婃楠ゅ悗锛屽嵆鍙湪鎵嬫満妗岄潰涓婁娇鐢ˋndroid灏忛儴浠朵簡銆傚彲浠ュ湪甯冨眬鏂囦欢涓缃皬閮ㄤ欢鐨勬牱寮忓拰甯冨眬锛岀劧鍚庡湪浠g爜涓洿鏂板皬閮ㄤ欢鐨勫唴瀹瑰拰澶勭悊鐐瑰嚮浜嬩欢銆?/p>