2012-09-24 71 views
1

所以我有這個問題,我有東西傳回給活動,但問題是我不知道如何,我讀過一些線程,但它的一個有點混濁和混亂,你們誰可以解釋一些這方面的一些亮點。我只想從我的接收器(BroadcastReciever)傳回一些東西。我已經閱讀了一個線索,您可以開始一項活動,但問題是如果您允許將活動的額外信息傳遞給活動,那麼會有一些混淆?感謝您提供的任何投入。android:傳遞迴廣播接收器的活動

+0

可能重複的完整的答案[我如何通過一個活動傳遞從廣播接收器的數據正在啓動?(http://stackoverflow.com/questions/2616859/how- do-i-pass-data-from-a-broadcastreceiver-through-to-an-activity-being-started) – Pratik

+1

我想http://stackoverflow.com/a/8597528/1434631中的答案可能會對你有所幫助。 – Nermeen

+0

是的,我已經讀過這兩個線程,我仍然困惑,如果onResume()真的被稱爲或什麼,如果是的話,我會把onResume()onCreate() – 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()的方法中捕獲它們。

退房從頂部鏈接

+0

不應該是setFlags()而不是addFlags?因爲我得到了我的工作使用阿爾戈但即時通訊使用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-然後它會在前面......沒有傷害......但如果你需要通過它而不影響你的GUI,那麼使用服務! –

相關問題