사용자가 위젯 본문을 클릭 할 때 주 앱의 Activity를 호출해야하는 위젯이 있습니다. 내 설치는 단일 위젯 인스턴스에 대해 작동하지만 동일한 위젯의 두 번째 인스턴스에 대해 PendingIntent가 재사용되고 결과적으로 내가 추가로 보내는 중요 정보가 첫 번째 인스턴스에 대해 덮어 씁니다. 그래서 나는 위젯 ID를 Intent
데이터로 전달해야한다고 생각했지만 Intent#setData
을 추가하자마자 2 개의 개별 인 텐트가 적절하게 해고되었다는 것을 로그에서 볼 수 있지만 활동은 기본적으로 그걸 가져 가지 못합니다. 활동이 나타나지 않고 아무 일도 일어나지 않습니다.Android : 인 텐트에 데이터를 추가하면 작업로드가 실패합니다.
<activity android:name=".SearchResultsView"
android:label="@string/search_results"
<intent-filter>
<action android:name="bostone.android.search.RESULTS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
그리고 여기에 포장되어 있습니다 클릭
Intent di = new Intent("bostone.android.search.RESULTS");
di.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// if line below is commented out - the Activity will start
di.setData(ContentUris.withAppendedId(Uri.EMPTY, widgetId));
di.putExtra("URL", url);
views.setOnClickPendingIntent(R.id.widgetContent,
PendingIntent.getActivity(this, 0, di, 0));
주요 응용 프로그램 및 위젯을 처리하기위한 설정입니다 코드입니다 : 활동이 매니페스트의 설정이 어떻게 여기 (오류 또는 경고 에테르) 는 없다 자체 패키지로 각각 2 개의 분리 된 APK 및 매니페스트
오 : 같을 것이다
과 의도 필터 : 당신 사항 setData() 호출과 같이 보입니다 그래서 나는, 자신의 열린 구조를 만들 것입니다! 물론 - 어리석은 나를! @mbaird에게 감사합니다 - 이제 완벽하게 작동합니다. – Bostone