gpt4 book ai didi

android - AlarmManager 正在阻塞主线程

转载 作者:太空狗 更新时间:2023-10-29 16:07:54 25 4
gpt4 key购买 nike

我已经实现了一个调用服务的 AlarmManager。问题是虽然我在 AsyncTask 中启动它,但它阻塞了主线程。这是我的 AsyncTask 的来源:

private class NotificationsServiceTask extends AsyncTask<Void, Void, Void> {
private AlarmManager alarmMgr;
private PendingIntent pi;

@Override
protected Void doInBackground(Void... params) {
alarmMgr = (AlarmManager) LoginActivity.this.getSystemService(Context.ALARM_SERVICE);
Intent serviceIntent = new Intent(LoginActivity.this, Service.class);
pi = PendingIntent.getService(LoginActivity.this, 0, serviceIntent, 0);
alarmMgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 120000, pi);
return null;
}


@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
}
}

我需要异步执行它,因为它会阻塞我的主线程。

最佳答案

在 AsyncTask 中设置闹钟并不重要。警报管理器将始终在主线程上启动您的服务,因为这就是服务的工作方式。

要解决您的问题,您需要修改警报启动的服务以创建要在其中运行的 AsyncTask

关于android - AlarmManager 正在阻塞主线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9687557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com