小编Don*_*bin的帖子

改造 2:在没有网络的情况下读取 JSON 时应用程序崩溃

当用户没有互联网连接时尝试使用 Gson 和 Retrofit2 读取 json 信息时,我试图阻止我的应用程序崩溃。有任何想法吗?

我的代码:

分段

class ManuFragment : Fragment() {
    private lateinit var viewModel: ManuFragmentVM

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
        _binding = FragmentManuBinding.inflate(inflater, container, false)
        return binding.root
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        viewModel = ViewModelProvider(this).get(ManuFragmentVM::class.java)

        viewModel.apply {
            manufacturer.observe(requireActivity(), {loadRecyclerView(it)})
            setup()
        }
    }

Run Code Online (Sandbox Code Playgroud)

查看模型

class ManuFragmentVM : ViewModel() {

    val manufacturer = MutableLiveData<List<Manufacturers>>()

    fun setup() {
        viewModelScope.launch(Dispatchers.Default) {
            manufacturer.postValue(CarsRepository().getAllManufacturers())
        }
    }
Run Code Online (Sandbox Code Playgroud)

界面

interface ManufacturerApi {
    @GET("url.json")
    suspend …
Run Code Online (Sandbox Code Playgroud)

android kotlin retrofit2

2
推荐指数
1
解决办法
1416
查看次数

用于重复后台工作的警报管理器或工作管理器

我无法决定是否使用警报管理器或工作管理器运行一些重复的后台工作:

  • 这项工作将包括房间数据库操作,因此我需要访问 Dao 来完成我的工作。
  • 它将以固定的时间间隔重复出现(每小时、每天、每周、每月等)
  • 我需要设置重复间隔的开始日期和时间。
  • 该工作将重复进行,直到用户取消为止
  • 如果用户在应该安排工作时使用该应用程序,我希望立即完成工作。如果用户不在应用程序上(应用程序在后台或设备已关闭),我不在乎工作是否在预定时间之后完成,只要它至少在用户下次打开时启动即可该应用程序。
  • 设备重新启动和应用程序重新启动后,工作需要按计划继续。

android alarmmanager android-room android-workmanager

1
推荐指数
1
解决办法
2050
查看次数