2012-07-31 2 views
0

다음 상황에 도움이 필요합니다. 위젯에 configure 작업이 있습니다. 활동에서 위젯 모양 (하나의 텍스트 만 TextView)에 영향을 미치는 일부 값을 가진 회 전자입니다. 현재 위젯 업데이트 (서비스)에 AlarmManager을 설정하고 액티비티 구성에서 TextView을 수정합니다. 이것은 잘 작동하지만, 전화를 다시 시작하면 알람이 더 이상 설정되지 않고 다시 설정해야합니다. 구성 작업의 설정이 손실되기 때문에이 작업을 수행 할 수 없습니다.구성 활동 설정하기

데이터베이스에 위젯 설정이있는 AppWidgetID을 저장하는 해결책이 있지만 최선의 해결책은 아닙니다. 문제는 의 onUpdate 메서드가 onCreate ConfigureActivity 메서드보다 먼저 호출된다는 것입니다.

간단히 말해, Configure Activity에서 일부 설정을 가져와 AppWidgetProvider에 전달하고 위젯을 업데이트해야합니다.

덕분에 사전에

답변

0

SharedPreferences위한 작업 같은데. 구성 활동을 사용하여 환경 설정 값을 설정하고 위젯에서 값을 읽으십시오. PreferenceManager.getDefaultSharedPreferences(Context)을 사용하여 공유 환경 설정에 액세스하십시오.

+0

된 SharedPreferences 그것을 해결하는 방법을 처음으로 생각했다. 저장하는 것은 괜찮지 만 특정 AppWidgetId가있는 위젯을 업데이트해야하는 AppWidgetProvider를 어떻게 말할 수 있습니까? – skywall

+0

@skywall - 구성 활동에서 위젯을 업데이트하기위한 메커니즘은 [here] (http://developer.android.com/guide/topics/appwidgets/index.html#UpdatingFromTheConfiguration)에 설명되어 있습니다. 구성 활동을 실행하는 인 텐트에서 위젯 ID를 검색합니다. –

+0

감사합니다. 마지막으로 AppWidgetProvider의 SharedPreferences 및 onReceive 메서드를 사용했습니다. – skywall

0

shared preferences을 사용하면 어떨까요? 응용 프로그램과 관련된 일부 환경 설정을 저장해야하는 경우이 솔루션을 사용할 수 있습니다. 이 같은

뭔가 :

SharedPreferences sharedPreference = getSharedPreferences(PREFS_NAME, 0); 
String prefName = sharedPreference.getString(YOUR_PREF_NAME, DEFAULT_VALUE);