문제

게시 : 2009 년 11 월 30 일 월 5:08 Post 제목 : 의도 엑스트라와의 간단한 문제 안녕하세요,

홈 화면을위한 앱 위젯에서 작업하고 있습니다. 사용자가 위젯을 탭하면 위젯에 표시되는 데이터를 변경하려고합니다. 그러나 다른 데이터로 여러 개의 위젯 인스턴스를 열 수 있습니다. 그래서 내 방법에 어떤 위젯이 업데이트 될지 알려주기 위해 데이터를 변경하기 위해 시작된 의도에 추가 기능을 추가하고 있습니다.

내가 가진 의도는 다음과 같습니다. Java :

Intent changeData = new Intent("com.tonycosentini.mintdroid.CHANGE_DATA"); 
changeData.putExtra("widget_id", currentWidgetId); 
PendingIntent changeDataPendingIntent = PendingIntent.getBroadcast(this, 0, changeData, 0); 
//This will return the correct value, but if I call it in my onreceive() method it won't.
Log.v(TAG, "stored id is: " + changeData.getIntExtra("widget", 0);

이것은 위젯 ID를 올바르게 저장하지만 변경 데이터 메소드가 호출되면 의도에서 읽은 위젯 ID가 첫 번째 위젯 인스턴스입니다. 즉, 모든 위젯을 생성하는 For 루프가 있으며, 어떤 위젯을 탭하든, 리시 된 위젯 ID는 항상 첫 번째 위젯에서 첫 번째 위젯 ID입니다.

누구든지 이것을 해결하는 방법에 대한 아이디어가 있습니까? 바라건대 나는 그것을 너무 나쁘게 말하지 않았다.

읽어 주셔서 감사합니다, 토니

도움이 되었습니까?

해결책

이것은 보드 인디언트에게 알려진 문제입니다. 안드로이드가 보드 인디언트를 비교할 때 의도 엑스트라를 비교하지 않으므로 다른 엑스트라만으로 동일한 기본 의도를 여러 번 예약 할 수 없습니다. 지금은 의도 데이터에 추가 정보를 추가하는 등의 의도를 추가 방식으로 독특하게 만들어서이를 해결할 수 있습니다.

Google Android Group에서 이것에 대해 약간의 논의가 있습니다. http://groups.google.com/group/android-developers/browse_thread/thread/81100da6ddb21136

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top