안녕하세요 슈퍼가오리입니다.

다름이 아니라 제가 BroadcastReceiver 에서 엑티비티를 실행해야하는데

1. Intent.FLAG_ACTIVITY_NEW_TASK 
2. PendingIntent.getActivity() 

2가지를 이용하여 리시버에서 엑티비티를 여는것을 시도하였습니다.

리시버에 있는 context 가 어플내의 엑티비티의 context 가 아닐 수 있기때문인지
엑티비티를 실행한후에 Task killer 등을 실행하여 확인해보면
제가 만든 어플의 Task 가 2개가 잡혀있는것을 확인하였습니다

간단히 코드를 설명드리면 엑티비티 2개, 리시버 1개로 구성된 어플입니다

==리시버==
public class MyReceiver extends BroadcastReceiver 
{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if("com.test.MY_BROADCAST".equals(intent.getAction()))
        {

            Intent alert = new Intent(context, Alert.class);
            
            PendingIntent pi = PendingIntent.getActivity(context, 0, alert,PendingIntent.FLAG_ONE_SHOT );
try
{
pi.send();
} catch (CanceledException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
            return;
        }

}
}

== 엑티비티 A == 
그냥 헬로우 월드
== 엑티비티 B ==
그냥 헬로우 월드



엑티비티 A에서 브로드캐스트를 발생시켜 리시버에서 받아 B를 실행시켰는데 Task 가 2개 생깁니다.
B 엑티비티가 destroy 되도 여전히 task 는 2개입니다

생성된 Task 를 kill 해버리니 A 엑티비가 띄워져있던 부분까지 지워져버려 난감한상황입니다 
참고로 recent 에서는 app 한개만 존재하고 실행하면 B가 뜹니다.


추가로 생겨버린 Task 를 안생기게 할수있거나 제거 할 방법을 도와주시면 감사하겠습니다


좋은하루되세요 ^^