android - 广播接收器工作但 1 或 2 小时后它不工作

标签 android

这是我的 list

<receiver android:name=".MyCallReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE" />
        </intent-filter>
</receiver>

public class MyCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
            if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)) {

              some code

            }

        if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_IDLE) || intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_OFFHOOK)){

              some code
            }         
        }   
}

它是可以工作的,但过了一段时间后,按下后​​退按钮,手机处于空闲状态,它就不再工作了

(我在我的代码末尾添加了“android.os.Process.killProcess(android.os.Process.myPid());”现在它更好并且在上次执行后可能工作 2 3 小时)

最佳答案

您可以像这样在一定时间间隔后使用警报管理器广播接收器。

public static void scheduleTestAlarmReceiver(Context context) {

   Intent receiverIntent = new Intent(context, TestAlarmReceiver.class);
   PendingIntent sender = PendingIntent.getBroadcast(context, 123456789, receiverIntent, 0);

   AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
   alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+startDelay, someDelay, sender);

}

关于android - 广播接收器工作但 1 或 2 小时后它不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30565637/

相关文章:

android - 固定 TextView 的宽度

android - 如何避免开机前黑屏?

java - 在标记中显示信息

android - 从 SD 卡 Android 读取图像时自动旋转

java - 将数据库复制到 Android 设备中的/数据

java - 为我的 Android 应用程序设计数据库

java - setImageResource 崩溃程序

java - 如何根据 OnInfoWindowClick 打开不同的 Activity

android - android 有原始文件大小限制吗?

android - 如何在锁定屏幕上显示通知?