java - 可以在不使用 AsyncTask 的情况下从 URL 获取 Json 吗?
问题描述
我是 android 新手,我正在构建问题的游戏。现在,我想使用 API 将我的问题带入我的游戏,API 返回一个 JSON 字符串,但是当我使用 API Url 访问 Intent 时,我的应用程序崩溃了。
从 OnCreate 我正在调用名为:get_questions_from_api() 的函数该函数需要使用类中的“new_questions”ArrayList 与 API 相同,但它会崩溃。
private void get_questions_from_api() {
String json_str;
try {
json_str = new Scanner(new URL("https://opentdb.com/api.php?amount=10").openStream(), "UTF-8").useDelimiter("\\A").next();
Gson gson = new Gson();
TypeToken<ArrayList<OpenTDB>> token = new TypeToken<ArrayList<OpenTDB>>(){};
new_questions = gson.fromJson(json_str, token.getType());
}
catch (Exception e){
pop_up("error !");
}
}
我正在寻找所有 10 个问题都将在我的数组列表中,但是当我开始“onCreate”时,所有应用程序都崩溃了。我认为它应该在“asynctask”中
解决方案
推荐阅读
- java - Anylogic:固定种子,但如果使用行人库,则无法重现运行
- excel - 如何检查子字符串是否在Excel工作表行中的任何条目中?
- salesforce - 闪电组件 CSP 阻止我将内联 base64 数据用于音频标签
- mongodb - 学习 MongoDB 哪本书比较好?
- cmd - 仅使用 cmd 和 psexec 远程注册表更改 HKCU
- java - Java 8 gradle 脚本导致内核恐慌
- javascript - How to clean empty array objects and renumber them?
- java - 使用 Glide 加载图像 URL 时嵌套滚动视图(滚动)滞后
- c++ - OpenCV 网络摄像头 MJPG 低 FPS
- docker - Cron 似乎无法在 Ubuntu Docker 容器上运行