我使用服务在Android中构建应用程序。在服务中,我尝试使用Thread始终显示和隐藏(活动而非隐藏)myActivity
。因此,如果我的活动处于活动状态,当用户尝试打开另一个应用程序时,我的活动始终显示,因为我每隔1秒使用Thread检查一次。但我有一个问题,当来电到我的设备我的活动总是显示,它隐藏电话/通话活动。我想问一下,如何检测电话/通话活动,所以如果传入活动或传出活动,我的服务将停止,如果它完成(未激活),我的服务将再次启动?
答案 0 :(得分:2)
如果您问如何检测来电,那么这将有效。同时在您的服务中调用注册接收器,以便在您的服务启动时,广播接收器也会启动。
public class CallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
// Get the current Phone State
String phoneState = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if(phoneState == null)
return;
// If phone is "Rininging"
if(phoneState.equals(TelephonyManager.EXTRA_STATE_RINGING))
{
//phone is ringing, add what you want to happen here when incoming call comes
}
}
在您的清单文件中
<!-- Register your Broadcast receiver -->
<receiver android:name=".CallReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
</application>