0

두 번째 또는 분 간격으로 업데이트되는이 위젯이 있습니다. 내가 전화 했어, 당신은 위 참조로, 그래서AlarmManager를 설정하기 전에 pendingIntent를 호출하는 방법

public class MyWidgetConfiguration extends PreferenceActivity { 
    // [...] Some code... 

    private void createWidget() { 
     Context c = getApplicationContext() ; 
     SharedPreferences sp = getSharedPreferences(PREF_NAME+widgetID, MODE_PRIVATE); 

     // Set layout 
     AppWidgetManager awm = AppWidgetManager.getInstance(c); 
     RemoteViews rv = new RemoteViews(c.getPackageName(), LAYOUT_ID); 

     awm.updateAppWidget(widgetID, rv); 

     // start alarm manager running this particular widget 
     Intent i = new Intent(c, MyWidgetReceiver.class); 
     PendingIntent pi = PendingIntent.getBroadcast(c, 0, i, 0); 
     AlarmManager a = (AlarmManager) c.getSystemService(Context.ALARM_SERVICE); 

     /** 
     * MY GUESS IS, THAT I'D HAVE TO ADD SOME KIND OF PendingIntent CALL HERE, 
     * I TRIED COUPLE OF THINGS, BUT MOST OF THEM INTERFERED OR CANCELLED FOLLOWING 
     * AlarmManager REPEATING... 
     * 
     * DELAY contains time left to closest full minute 
     */ 
     a.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + DELAY, MINUTE, pi);  

     /// return widget ID 
     Intent resultValue = new Intent(); 
     resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetID); 
     setResult(RESULT_OK, resultValue); 

     finish(); 
    } 

    // [...] More of some code... 
} 

: 사용자가 모든 설정 그가 설정이 종료 제대로 나는 메소드를 호출하는거야 것을 결정할 때 PreferencesActivity 화면하는 위젯을 추가 한 후

시작됩니다 alarmManager 처음 분부터 모든 분, 그리고 괜찮아요 지연 패스 후,하지만 그 전에 내 위젯 좀 시간이 좀 냉동입니다. 나는 이것을 막고 싶지만 Receiver에 추가적인 로직을 추가하지 않고 매 초마다 호출 할 수 있기 때문에. 전체 & 원본 코드는 다음과 같습니다. http://goo.gl/uOP9P

답변

0

PendingIntent는 아마도 다른 곳에 기록 된 코드를 호출 할 것입니다. 알람을 설정 한 후 똑같은 코드를 직접 호출하지 않는 이유는 무엇입니까?

관련 문제