我在我的應用程序中使用廣播接收器來檢測呼入電話,它工作正常。但問題是我無法將行動發送到活動。我的意思是......我想在活動中做一些事情,而不是在接收者身上我讀了很多教程,但他們都在接收器中執行操作。任何想法 ?將接收器的操作發送到活動?
1
A
回答
4
您可以聲明BroadcastReceiver
作爲Activity
的內部類。在這種情況下,您可以直接調用活動的方法:
public class MyActivity extends Activity {
private final BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
activityMethod();
}
};
private final IntentFilter filter = new IntentFilter("android.intent.action.PHONE_STATE");
@Override
protected void onStart() {
super.onResume();
registerReceiver(receiver, filter);
}
@Override
protected void onStop() {
super.onPause();
unregisterReceiver(receiver);
}
private void activityMethod() {
}
}
0
您可以使用Intent
啓動Activity
,並在Intent
額外字段中輸入命令代碼。在您的Activity
中,您可以根據命令代碼決定行爲,如果不存在,則採用默認行爲。雖然用戶是要想到的是,手機應用程序啓動時,因爲他們接到一個電話
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, YourActivity.class);
startActivity(i);
}
注:
0
您可以通過正常手段開始從接收器的活動。通過在股票撥號器應用程序之上傾銷自己的活動來劫持電話很可能不是個好主意。
相關問題
- 1. 如何將廣播接收器的結果數據發送到活動
- 2. Android將套接字服務收到的數據發送到活動
- 3. 發送消息時接收到什麼意圖操作?
- 4. 如何將數據從廣播接收機發送到android中的活動
- 5. 廣播接收器和MainActivity之間的Android通信(發送數據到活動)
- 6. 將字符串發送到活動,然後發送到活動的片段
- 7. 在接收/發送活動中引發xamlx中的ObjectDisposedException?
- 8. 發送圖像信息到接收器
- 9. 從UITextField收集發送的活動
- 10. 接收服務數據包並將數據發送到更多活動
- 11. Image-Crop-Activity不會將Image-Uri發送到接收活動(Android-Image-Cropper)
- 12. TCP套接字:流發送/異步操作兩次接收
- 13. 接收服務器響應並將其發送到瀏覽器?
- 14. 在GPRS連接處於活動狀態時發送/接收SMS
- 15. 發送到我的活動
- 16. 發送和接收從一個活動到另一個活動的選定微調器信息
- 17. 將數據發送到活動
- 18. 將包發送到另一個活動
- 19. 將數據發送到老年活動
- 20. 將消息從IntentService發送到活動
- 21. 活動發送數據到片段,但接收到的片段爲空
- 22. 從活動發送適配器到ListActivity
- 23. 將廣播發送到不在活動堆棧中的活動
- 24. 活動之間的廣播發送/接收
- 25. 活動收聽廣播接收器
- 26. 服務器發送活動
- 27. 如何將消息的發送和接收移動到服務器線程?
- 28. 將操作發送到EmberJS中的應用程序控制器
- 29. 我的活動未收到其他活動發送的本地廣播
- 30. ChromeCast接收器可以將POST消息發送到服務嗎?
但是我的活動已經在運行。 –
在這種情況下,您需要使用BroadcastReceiver作爲活動的內部類,如vmironov的答案。而且我仍然認爲值得指出的是,人們不太可能爲接管電話而感到高興。 – FoamyGuy