我对android编程比较陌生,我正在尝试编写一个应用程序,我想从正在侦听调用状态的BroadcastReceiver启动一个活动。实际上,我想在打电话时开始一项活动。我现在正在做的是:
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.
你能否至少给我一个暗示,了解什么可以阻止我的申请?我试过严格的模式,但没有什么重要的。提前致谢。
答案 0 :(得分:0)
要解决此问题,我决定更改问题:我只会发送通知而不是启动活动。这是解决此问题的关键,因为呼叫活动的高优先级似乎会干扰启动的应用程序。