2012-05-02 2 views
1

내 AppWidgetProvider에 사용자 지정 텍스트를 보내려는 의도를 호출하는 서비스가 있습니다. 이를 위해 onRecieve 메서드를 사용하여 올바른 동작을 확인합니다.서비스에서 인 텐트를 통해 위젯으로 데이터 전달

그래서 두 가지 질문이 있습니다. 첫 번째는 올바른 방법이며 두 번째 이유는 내 전화 수신 방법이 아닙니다.

나는

<receiver android:label="KreativBarometer Widget" 
    android:name=".widget.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는 다음 onReceive 방법

public void onReceive(Context context, Intent intent) { 
    if(intent.getAction().equals("APPWIDGET_UPDATE")){ 
     String text = intent.getStringExtra("newItemArrived"); 
     RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout); 
     views.setTextViewText(R.id.TextView01, text); 
    } 
    super.onReceive(context, intent); 
} 

를 사용하여 테스트를 위해 나는 당신이 생각하는이 의도

Intent intent = new Intent("APPWIDGET_UPDATE"); 
intent.putExtra("newItemArrived", "Neue Frage erschienen"); 
sendBroadcast(intent); 

답변

0

를 사용 매니페스트이 다음과 같은 부분을 추가 매니페스트 파일을 수정하여 다음 두 가지를 포함하십시오 :

당신의 <receiver>에서
  1. 또 하나 개의 동작은 당신이 의도 서비스를 등록 위젯

  2. 에 들어오는이 나타냅니다.

아마도이 비디오 유용 할 것입니다 : https://youtu.be/DJsNmS-PvD8?t=2m7s

관련 문제