我設法從我的onReceive()
方法開始了一個活動,但我確實需要做一個startActivityForResult();
。在廣播接收器中啓動結果的活動?
有什麼辦法可以做到這一點?
在附註中,我將如何讓我的應用成爲「相機」應用,就像應用開始拍攝照片時出現的應用一樣?
我設法從我的onReceive()
方法開始了一個活動,但我確實需要做一個startActivityForResult();
。在廣播接收器中啓動結果的活動?
有什麼辦法可以做到這一點?
在附註中,我將如何讓我的應用成爲「相機」應用,就像應用開始拍攝照片時出現的應用一樣?
startActivityForResult
只能從Activity
調用,因爲它在Activity
類中定義並需要活動的實例。
只能調用startAcivity()
從廣播接收器,因爲在onRecieve()
你只能訪問通用context
對象,它並沒有定義在類startActivityForResult
方法..
瞭解廣播接收機最重要的是,您不應該在其中添加長時間運行的進程,因爲在5秒之後,您的應用程序將崩潰。
你的情況做的最好的事情是意圖從廣播接收器等活動,並從該活動中使用startActivityForResult()
,得到的圖片,並從那裏繼續...
但是,如何將圖像uri返回到請求的應用程序?這是我要做的,直到我意識到我需要傳回數據。 –
爲什麼你需要使用這個廣播接收機? 什麼是你的廣播過濾器? 你想構建將運行相機的應用程序嗎? – 15412s
是的,沒有。我想構建一個應用程序,它會像運行相機應用程序一樣運行,但它實際上允許用戶從其畫廊中選擇應用程序,而不是拍攝新照片。 –
是我找到了,怎麼當我從接收器中調用一個活動時,我會返回一些數據? –
你能解釋一下你的使用案例嗎?廣播接收器並不意味着要使用那樣..來自官方的java doc ** BroadcastReceiver對象只對調用onReceive(Context,Intent)有效。一旦你的代碼從這個函數返回,系統會認爲該對象已經完成並且不再處於活動狀態。** –