2011-01-26 4 views
0

저는 지금 상당히 복잡한 앱을 가지고 있는데 앱 위젯을 포함하고 싶습니다. 그게 지금까지 잘 작동하고 모든 콘텐츠 제공 업체, 서비스 및 구성 유틸리티로 설정되어 있습니다.내 위젯 구성 활동을 다시 실행하면 배경에 내 앱이 실행됩니다.

지금 ... 첫 번째 초기 구성 후 내 위젯을 다시 구성 할 수 있기를 원합니다. 그래서 내 생각 엔 단순히 .getActivity()와 함께 PendingIntent를 사용하여 구성 활동을 다시 시작하는 것입니다. 지금까지 잘 작동합니다! 지금

RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_news_layout); 

    Intent config_intent = new Intent(context.getApplicationContext(), NewsWidgetConfigure.class); 
    config_intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mappWidgetId); 
    config_intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

    PendingIntent conf_penIntent = PendingIntent.getActivity(context, mappWidgetId, config_intent, 
      PendingIntent.FLAG_UPDATE_CURRENT); 

    views.setOnClickPendingIntent(R.id.settings_button, conf_penIntent); 

... 문제는 내 구성 활동의 어떻게 든 재발이 의미 전면에 다시 전체 응용 프로그램을 가져 오는, 그거 "뒤로"후 - 프레스뿐만 아니라 후 내 Configuration.finish (), 사용자는 홈 화면 대신 앱으로 돌아갑니다.

나는이 문제가 launchModes 또는 Intent Flags와 관련이 있다고 확신하지만 지금 당장은 당황하지 않고 몇 시간 동안 나를 괴롭 히고있다.

사전에 도움을 주셔서 감사합니다.

답변

0

내게는 NewsWidgetConfigure.class가 finish() 또는 NewsWidgetConfigure.class에서 앱 활동을 시작한 것 같고 앱이 위젯에서 오는 요청임을 액티비티에 알려주는 방법을 찾아야합니다 (인텐 트 엑스트라 또는 공유 환경 설정)

+2

안녕하세요 ... 답변에 감사드립니다. 어느 쪽도 그렇지 않았다. 나는 구성 유틸리티의 onFinish에서 내 응용 프로그램을 시작하지 않았으며 configure 응용 프로그램은 응용 프로그램 Main이 아닙니다. 하지만 실제로 해결했습니다 ... 어떻게 든 해킹입니다! 난 지금 두 구성 활동을 ... 하나, 그 위젯이 홈 화면에 배치 된 후 XML 기반 위젯 설정을 통해 시작됩니다 ... 그리고 절대적으로 동일합니다 (에서 연장) 버튼 프레스에 대한 또 다른 하나 그 "launchMode"는 "singleInstance"입니다. – saberrider

6

구성 작업에 android:allowTaskReparenting="false"android:taskAffinity=""을 설정하면 문제가 해결된다는 것을 알았습니다.

관련 문제