gpt4 book ai didi

android远程进程(接收者)快速死亡

转载 作者:行者123 更新时间:2023-11-29 02:14:26 28 4
gpt4 key购买 nike

我正在尝试每 60 秒运行一次 CPU 密集型任务。我正在使用带有 PendingIntent 的 AlarmManager,`

    Intent intent = new Intent(MainActivity.this,AlarmReciever.class);
PendingIntent pi=PendingIntent.getBroadcast(this, 0, intent, 0);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), period, pi);

AlarmReciever.class 使用一些第三方二进制文件进行一些密集处理,并且至少需要 12 秒才能完成(当同样作为单个 Activity 运行进行测试时)。但是当我运行与 PendingIntent 相同的方式时,我看到远程进程在启动后几秒钟内就死了。我得到这个错误

03-03 03:09:45.417: INFO/ActivityManager(109): Start proc com.am:remote for broadcast com.am/.AlarmReciever: pid=7940 uid=10052 gids={1015}

03-03 03:09:55.375: WARN/ActivityManager(109): Timeout of broadcast BroadcastRecord{40a1ee80 null} - receiver=android.os.BinderProxy@4074f798, started 10003ms ago

03-03 03:09:55.375: WARN/ActivityManager(109): Receiver during timeout: ResolveInfo{40ae3380 com.am.AlarmReciever p=0 o=0 m=0x0}

03-03 03:09:56.105: ERROR/ActivityManager(109): ANR in com.am:remote

03-03 03:09:56.105: ERROR/ActivityManager(109): Reason: Broadcast of Intent { flg=0x4 cmp=com.am/.AlarmReciever (has extras) }

03-03 03:09:56.105: ERROR/ActivityManager(109): Load: 1.44 / 1.42 / 1.29

在 Logcat 中。它说

 Reason: Broadcast of Intent { flg=0x4 cmp=com.am/.AlarmReciever (has extras) }

但我并没有在 Intent 中添加任何额外内容。但将来我想放置一些东西。

有人可以帮助我理解为什么它关闭得如此之快,以及如何才能让进程在完成任务后才结束。

list 是这样列出的

   <receiver  android:process=":remote" android:name="AlarmReciever"></receiver>

补充一下,我已经尝试了这个 answer 中提供的解决方案在 SO 上,但仍然没有运气

最佳答案

自己终于得到了答案,

A BroadcastReceiver object is only valid for the duration of the call to onReceive(Context, Intent). Once your code returns from this function, the system considers the object to be finished and no longer active.

来源:click here

关于android远程进程(接收者)快速死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5178271/

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