App Widget 시작


 


 

안드로이드 스튜디오

프로젝트 최상단 [app] 오른쪽 마우스 클릭 !


NEW    >    Widget    >    App Widget     선택

자동으로 앱위젯을 생성해 준다.


 

 

 

 

 

앱위젯 설정

 

 

 


 

매니페스트

 

매니페스트에 receiver 로 등록이 되어야 한다. 역시 자동으로 생성되고,

res > xml 폴더 밑에도 자동으로 provider 파일을 생성해준다.

 


 

 


XML > appwidget-provider

initialKeyguardLayout  :  잠금화면에서 보여질 레이아웃

initialLayout  :  홈화면에서 보여질 레이아웃

minHeight  :  최소 높이

minWidth  :   최소 넓이

previewImage  :  위젯 선택할 때 나타날 이미지

resizeMode  :  가로 세로 리사이즈 모드

updatePeriodMillis  :  업데이트 주기 (30분 밑으로는 업데이트 설정이 안됩니다)

configure  :  설정 액티비티

widgetCategory  :  위젯이 보여질 카테고리 (홈스크린, 잠금화면)

 

 





AppWidgetProvider

public class MyAppWidget extends AppWidgetProvider {

static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
int appWidgetId) {

CharSequence widgetText = context.getString(R.string.appwidget_text);

PreferenceTool tool = new PreferenceTool(context);
String getStr = tool.getString(String.valueOf(appWidgetId), widgetText.toString());

Log.i(Const.TAG, "updateAppWidget() get Preference String : " + getStr + ", widgetId: " + appWidgetId);

// Construct the RemoteViews object
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_app_widget);
views.setTextViewText(R.id.appwidget_text, getStr);

Intent intent = new Intent(context, WidgetConfigActivity.class);
intent.setData(Uri.parse(String.valueOf(appWidgetId)));

PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.appwidget_text, pendingIntent);

// Instruct the widget manager to update the widget
appWidgetManager.updateAppWidget(appWidgetId, views);
}

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// There may be multiple widgets active, so update all of them
for (int appWidgetId : appWidgetIds) {
updateAppWidget(context, appWidgetManager, appWidgetId);
}
}

@Override
public void onEnabled(Context context) {
// Enter relevant functionality for when the first widget is created
}

@Override
public void onDisabled(Context context) {
// Enter relevant functionality for when the last widget is disabled
}
}

 

onUpdate  :  위젯이 업데이트 신호를 받을 때 호출 되는 함수

onEnabled  :  위젯을 처음 활성화 했을 때 호출 되는 함수

onDisabled  :  위젯이 비활성화 될 때 호출 되는 함수

onReceived  :  Broadcast 메시지를 받을 때 호출되는 함수

 

 


 




출처 : https://developer.android.com/guide/topics/appwidgets/index.html?hl=ko#MetaData

'안드로이드 > AppWidget' 카테고리의 다른 글

AppWidget -02  (0) 2017.08.17
Posted by 자바리즘
,