위젯을 가지고 있는 어플을 만들었는데요,

일반 홈 메뉴에서 어플을 실행하고 홈 버튼을 눌러 홈스크린으로 빠져나온후 다시 메뉴에서 어플을 실행시키면 홈 버튼을 눌렀을때의 화면(시작화면이 아닐수도 있는)이 나오는게 정상 작동이라고 알고 있습니다.

또한 위젯을 클릭하여 어플을 실행할 수있도록 구현한 다음, 위젯을 클릭하여 어플을 실행 하고 홈 버튼을 눌러서 나간 후, 다시 위젯을 클릭하면 이것 또한 위와 같이 홈 버튼 눌렀을떄의 액티비티(시작화면이 아닐수도 있는)가 나타나게 됩니다.(정상 작동)

그러나 문제는, 홈메뉴에서 어플을 실행하고 홈 버튼을 눌러서 나간 후 위젯을 클릭했을때는, 홈 버튼을 눌러 나가기 전의 액티비티가 아니라, 똑같은 어플의 첫 실행 액티비티가 뜨게 됩니다. 문제는 이게 다른 Task에 생성되기 때문에 똑같은 어플이 두개가 띄워지게 된다는 겁니다.

기본 어플인 뮤직플레이어나, 캘린더 어플을 보면, 위젯을 클릭할때나, 홈 메뉴의 아이콘을 클릭하여 실행할때나 홈 버튼에 대해서 항상 같은(홈 버튼 눌렀을 때의) 액티비티를 띄워주는데요..


혹시 이런 동작을 할 수 있도록 하는 방법이 있을까요?

캘린더랑 뮤직플레이어 소스를 봐도 특별한 점을 잘 못찾겠네요...

manifest의 singleTask 또는 singleInstance 설정이 아닌 상태로 구현하려고 합니다. 이 두개의 설정을 하게 되면 위젯 클릭할떄나, 아이콘 클릭할떄나 같은 액티비티를 띄워주긴 하지만, 항상 첫화면(홈버튼 눌렀을때의 화면이 아닌)을 띄워주더라고요..

정리하자면, 위젯으로 클릭하여 실행하든 홈 아이콘을 눌러 실행하든 홈버튼 눌러서 나간후에 다시 돌아올떄는 홈버튼눌렀을떄의 액티비티로 돌아오게 하고 싶습니다.

위젯에서의 클릭이벤트 처리는,

  Intent i = new Intent(context, MainActivity.class);
  PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, i, 0);
  remoteViews.setOnClickPendingIntent(R.id.Img_View, pendingIntent);

이런식으로 처리하였습니다.