1
我對android編程比較陌生,我試圖編寫一個應用程序,我想從正在監聽呼叫狀態的BroadcastReceiver開始一個活動。在實踐中,我想在打電話時開始一項活動。我現在正在做的是:Android活動丟失事件,應用程序沒有響應
public class ServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
TelephonyManager telephony = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
int state = telephony.getCallState();
...
Intent i = new Intent(context, OnCallActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
i.putExtras(bundle);
context.startActivity(i);
}
活動開始沒有做任何事情。我設法開始沒有任何問題的活動,但我得到的是一個沒有反應的應用程序。該應用程序已啓動,但後退按鈕等事件不起作用。我可以多次按下它,而無需應用程序反應,我必須殺死它。在logcat這裏是我所看到的:
11-02 13:54:19.651 918-1065/? W/InputDispatcher﹕ Asynchronous input event injection failed.
11-02 13:54:19.651 918-1065/? I/InputDispatcher﹕ Dropped event because the current application is not responding and the user has started interacting with a different application.
你能至少給我一個提示,以瞭解什麼可以阻止我的應用程序?我嘗試了嚴格的模式,但我沒有得到任何意義。提前致謝。
你想達到什麼目的?它不是從接收器或服務開始活動的好習慣,您應該使用通知來通知用戶或敬酒。通話活動是一項高優先級活動,必須位於最前面,以便用戶可以接聽或拒絕通話。 – iago 2014-11-17 06:06:27
你是對的,我已經解決了我的問題(幾天前),就像你說的。這是實施細微的變化,但效果很好。 – Raffo 2014-11-17 11:56:43