2012-11-25 7 views
1

다음 시나리오를 따르십시오. 내 홈 화면에 3 개의 위젯이 있습니다. 클릭하면 위젯 구성 활동이 시작됩니다.여러 위젯 : 위젯에서 구성 활동 시작

이는 다음 코드에 의해 구현되었습니다 출범 작동하지만, 한 가지 문제가

Intent intent = new Intent(context, WidgetConfigurator.class); 
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))); 
PendingIntent pendIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
remoteView.setOnClickPendingIntent(R.id.widget_linearlayout, pendIntent); 

:
1. 위젯 A를 클릭하면됩니다, 위젯 (A)의 구성 활동
2. 사용자를 열려는 "다시"키 히트 곡 "다시"키, 구성 활동,
3. 위젯 B가 클릭 된 사라 위젯 B의 구성 활동이
4. 사용자 안타를 개방 위젯의
는 => 지금 구성 활동 A가 표시됩니다

나는 항상 "실제"구성 활동 (클릭 한 위젯에 맞추기)이 표시되기를 원합니다. 어떤 설정을 Intent/PendingIntent에 사용해야합니까? 어떤 도움

답변

0

에 대한

들으 현재 활동이 종료됩니다 확실히 얻을 수있는 방법이 마무리를 호출하는 것입니다(). 안드로이드 애플 리케이션은 스택처럼 만들어지며, 액티비티 A가 시작됩니다. 사용자가 안타를 치면이 액티비티가 닫히지 않습니다. 그것은 단지 새로운 시작 활동 B에 놓여 있습니다. 사용자가 활동 B를 다시 방문하면 활동 A가 표시됩니다. 나는 이것을 시도한 적이 없지만 onBackPressed 메소드에서 finish를 호출하면 현재 활동이 닫힙니다. 이렇게하려면 Activity에서 onBackPressed를 재정의하십시오.

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))); 
PendingIntent pendIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
remoteView.setOnClickPendingIntent(R.id.widget_linearlayout, pendIntent); 
2

보인다. 클릭시 잘못된 의도로 보내지면서 많은 시간을 낭비했습니다.

PendingIntent pendIntent = PendingIntent.getActivity(context, WIDGETID, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
3
안드로이드는 의도를 재사용으로 위젯 ID를 포함하도록중인 의도 코드를 변경

: 지금 모든 안드로이드 버전에 대한 작업 솔루션을 발견 많은 주위 시도한 후

관련 문제