2012-04-04 3 views
16

설명 가져 오지 않습니다의도가 활동을 시작합니다 -하지만 앞으로

  • 활동을 볼 (또는 배경)에
  • 의도 나는 가치 엑스트라와 방송에 의해 수신된다 그 다음 엑스트라를 새로운 의도 인 I2으로 전달하여 액티비티 A을 시작할 때 사용합니다.
  • 결과 : 활동이 백그라운드에서 작동하는 경우 활동을 에 가져 오지 마십시오.

코드 :

Intent I2= new Intent(context, MyActivity.class); 
I2.putExtra(.. 
I2.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); // | Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(I2); 

참고 : 난 당신이 줄을 추가 배경으로 활동을하려는 경우

+2

왜 포어 그라운드에 있지 않기를 원할 때 액티비티를 시작 하시겠습니까? 당신이하고 싶은게 뭐지 ..? – ngesh

+0

그래서 나는 그것을 업데이트했다 : 정면으로 활동하지 마라. 활동은 배경에있다! – pulancheck1988

+0

이것을 위해'FLAG_ACTIVITY_MULTIPLE_TASK'을 사용하지 마십시오! 여러 작업을 시작하게되면 작업을 관리하는 데 어려움을 겪습니다. 이것은 열지 않으려는 웜의 깡통입니다! –

답변

7

을 알아야한다고 생각 .. "taskAffinity 안드로이드"명시하는 나는 더 추가하지 활동의 한 OnCreate에서

moveTaskToBack(true); 
+0

초 동안 활동을 보여줍니다. – zgulser

4

당신은 당신의 onCreate() 방법이 줄을 사용할 수 있습니다

moveTaskToBack(true); 
+0

'moveTaskToBack (true);을 호출 한 후 어떻게 활동을 다시 시작할 수 있는지 알려주시겠습니까 'Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_MULTIPLE_TASK'을 사용했지만 활동을 새로 시작하지는 않습니다 .. note ** i 동일한 활동을 여러 번 반복 – medo

2

백그라운드에서 Activity을 시작하고 싶지는 않습니다. 원하는 것을 할 수있는 더 좋은 방법이 있습니다. 예를 들어, Activity 등록자에게 방송 Intent을 수신하도록 할 수 있습니다. 백그라운드에 있더라도 onReceive()으로 전화가 걸립니다. 변수 trueonPause(), falseonResume()으로 설정하여 Activity이 백그라운드에 있는지 확인할 수 있습니다. 그런 다음 onReceive()에서 변수가 true이면 배경에 있습니다.

관련 문제