gpt4 book ai didi

java - 运行方法在 BroadcastReceiver 中有效,但循环方法失败

转载 作者:行者123 更新时间:2023-11-30 03:58:21 25 4
gpt4 key购买 nike

如果我运行我的 onReceive() 方法时只用一个简单的 toast,我的应用程序就会运行。但是当我尝试执行一个循环然后显示 toast 时,我的程序崩溃了。是不是说我不能在 onReceive() 方法中执行循环?

  @Override
public void onReceive(Context ctx, Intent intent) {
DBAdapter havetododb = new DBAdapter(ctx);
Cursor cursor = havetododb.fetchAllItems();
if (cursor.moveToFirst()) {
do {
String title = cursor.getString(cursor.getColumnIndex("item"));
Toast.makeText(ctx, title, Toast.LENGTH_LONG).show();
} while (cursor.moveToNext());
}
cursor.close();
}

我试图在我的 logcat 中搜索错误,但它似乎是空的。

最佳答案

您可以运行任何代码,但是如果您在主线程上运行的时间太长(我认为是 10 秒,但这取决于什么版本),您将遇到应用程序无响应 (ANR) 中断,并且您会得到杀了。不过,这应该会显示在日志中。用 try/catch 围绕您的代码,它可以捕获所有内容并查看您得到了什么。

如果您没时间了,[IntentService]/http://developer.android.com/reference/android/app/IntentService.html) 会帮助您。在 AsyncTask 中执行也足够了但这不会让您的流程保持活力。

关于java - 运行方法在 BroadcastReceiver 中有效,但循环方法失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12971718/

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