2012-09-24 4 views
1

그래서이 문제가 어디서 다시 활동으로 전달 될지 모르지만 문제는 어떻게되는지 모르지만 일부 스레드를 읽었습니다. 조금 혼란스럽고 혼란스럽고, 이것에 관해 당신의 창고에 누군가가 밝힐 수 있습니다. 난 그냥 내 reciever (BroadcastReciever)에서 활동에 뭔가를 다시 전달하고 싶습니다. 활동을 시작할 수있는 스레드를 읽었지 만, 활동에 대한 의도를 추가로 전달하면 약간의 혼란이있을 수 있습니다. 당신이 제공 할 수있는 모든 의견을 주셔서 감사합니다.android : 무언가를 다시 방송 수신기에서 무언가로 전달

+0

가능한 중복 위쪽 링크에서 완전한 답변 밖으로

확인 [어떻게 활동에 통해 브로드 캐스트 리시버에서 데이터를 전달하지가 시작되는?] (http://stackoverflow.com/questions/2616859/how- do-i-pass-data-from-a-broadcast-receive-to-a-activity-being-started) – Pratik

+1

http://stackoverflow.com/a/8597528/1434631에있는 답변이 도움이 될 것 같네요 .. – Nermeen

+0

그래, 그 스레드를 모두 읽었습니다. 만약 onResume()이 실제로 불려지거나 혼란 스럽다면, onRemote()의 onRemote() isntead에 무언가를 넣을 것입니다. – lemoncodes

답변

2

가능한 중복 응답 https://stackoverflow.com/a/6857648/760489

당신이

public void onReceive(Context context, Intent intent){ 
    Intent i = new Intent(context, DestinationActivity.class); 
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    i.putExtra("PATH", path); 
    context.startActivity(i); 
} 

FLAG_ACTIVITY_SINGLE_TOP 방송 수신기에서 활동을 시작할 때 의도에 플래그를 설정하여이 방법을 수행 할 수 있습니다 이미 열려있는 경우 앱을 다시 열지 못하게합니다. 즉, YourActivity를 처음 열었던 "이전"의도가 다시 사용되고 여분의 값을 포함하지 않습니다. YourActivity의 onNewIntent()라는 또 다른 메서드에서이를 catch해야합니다.

이의
+0

은 addFlags 대신 setFlags()가되어서는 안됩니까? 사촌 난 내 알았어하지만 난 setFlags(), addFlags() 내 사건에 아무것도 사용 내 일을 가지고있어 ... – lemoncodes

+0

이 대답을 받아들이기로 결정했습니다, 난 그냥 addFlags setFlags 변경된 옷장 건,하지만 여전히 내 질문은 위와 동일하다. – lemoncodes

1

이 밖으로 시도 :

public void onReceive(Context context, Intent intent) 
{ 

    Intent i = new Intent(context, DestinationActivity.class); 
    i.putExtra("PATH", path); 
    context.startActivity(i); 
} 
+0

@ lemoncodes- 도움이되는 경우 동의하십시오! –

+0

정말이 프로세스를 이미 알고 있습니다. 내 앱에서 액티비티를 시작하지 않고 무언가를 전달하고 있습니다. 액티비티가 이미 시작되었습니다. – lemoncodes

+0

@ lemoncodes-then 그게 앞으로 나올 것입니다 ... 해가되지 않습니다 ... 하지만 UR GUI에 영향을 미치지 않고 전달해야한다면 Services를 사용하십시오! –

관련 문제