2012-04-20 93 views
0

我在Android环境中颇为新颖。在4.0.3的EXTRA_STATE_OFFHOOK(传出呼叫)后无法启动活动

这个问题发生在android 4.0.3上,但它在android 2.2上工作。我可以在打出电话后开始活动。我只想在打电话时将我的活动回复到前台。但它在android 2.2上工作,但它不适用于4.0.3。

这是我的代码。此代码在传入状态的两个版本上工作。 但是它在4.0.3上不适用于即将离任的意图。我从BroadcastReceiver称这个意图。请注意,我不想结束电话呼叫活动,而我的活动处于前台状态。我在Mainfest.xml中将启动模式设置为“singleInstance”。

Toast.makeText(context, "Should Start Activity", Toast.LENGTH_LONG).show(); 
       Intent callsensorintent = new Intent(); 
       callsensorintent.setFlags(
         Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT 
         |Intent.FLAG_ACTIVITY_REORDER_TO_FRONT 
         |Intent.FLAG_ACTIVITY_NEW_TASK 
         ); 
       callsensorintent.setClassName(context,"com.example.test.sg.SensorUdp"); 
       context.startActivity(callsensorintent); 

感谢

回答

0

上ICS呼叫屏幕具有更高的优先级比以前,所以它会显示在上面胜于一切,当它在前台。现在甚至比通知菜单/窗帘的优先级更高。 您可以为应用程序使用更高的窗口优先级,例如WindowManager.LayoutParams.TYPE_SYSTEM_ALERT

+1

谢谢Sveinung Kval, 我通过添加TimerTask解决了这个问题。我让呼叫屏幕首先进入前景,一秒后,我将我的活动称为前景。它正在工作。不管怎么说,还是要谢谢你。 – Kaung 2012-04-24 08:39:08