嗨,我最近才开始使用room数据库,我正在看的课程建议使用一个utils/helper类来完成所有的数据库操作,但我从来没有被教过如何将所有的utils静态方法转换为异步任务,以便在room数据库中正确使用,所以我想知道是否有人对如何实现这一点有建议。干杯
(下面是我正在使用的实用程序和mainFragment
Utils类
}
null
package maddo.com.aquariumfish.MainFragment;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import java.util.ArrayList;
import maddo.com.aquariumfish.Adaptors.FishAdaptor;
import maddo.com.aquariumfish.Daos.FishDao;
import maddo.com.aquariumfish.DataBases.FishDataBase;
import maddo.com.aquariumfish.FavouriteFishActivity;
import maddo.com.aquariumfish.Models.Fish;
import maddo.com.aquariumfish.R;
import maddo.com.aquariumfish.SearchActivity;
import maddo.com.aquariumfish.Utils;
public class MainFragment extends Fragment {
private RecyclerView MainRecView;
private FishAdaptor fishAdaptor;
private BottomNavigationView bottomNavigationView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frangment_main,container,false);
initView(view);
initBottomNavView();
initRecView();
return view;
}
@Override
public void onResume() {
super.onResume();
initRecView();
}
private void initRecView(){
fishAdaptor = new FishAdaptor(getActivity());
MainRecView.setAdapter(fishAdaptor);
MainRecView.setLayoutManager(new GridLayoutManager(getActivity(), 2));
ArrayList<Fish> fish = Utils.getAllFish(getActivity());
if(null!= fish){
fishAdaptor.setFish(fish);
}
}
private void initBottomNavView() {
bottomNavigationView.setSelectedItemId(R.id.bottomHome);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.bottomHome:
break;
case R.id.bottomFavFish:
Intent FavIntent = new Intent(getActivity(), FavouriteFishActivity.class);
FavIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(FavIntent);
break;
case R.id.search:
Intent SearchIntent = new Intent(getActivity(), SearchActivity.class);
SearchIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(SearchIntent);
break;
default:
break;
}
return false;
}
});
}
private void initView(View view) {
MainRecView = view.findViewById(R.id.mainRecView);
bottomNavigationView =view.findViewById(R.id.MainbottomNavView);
}
null
不使用AsyncTask,我将建议使用coroutines。它非常简单,而且比AsyncTask效率最高。
也许您不想将每个方法转换为AsyncTask,如果这是您要说的。AsyncTask是一个并发框架,它允许您在Utils类自己的专用线程上调用它。
如果我们想让事情变得尽可能简单,只需创建一个AsyncTask类并调用您的Utils方法。您的Utils方法将使用AsyncTask提供的上下文。
我想问一下你的知识。一个Spring启动应用程序包含各种映射器。这些应该进行测试。要测试映射器,应该读取一个JSON文件。这个JSON文件加载在每个测试文件中。到目前为止,该功能已在每个测试类中实现,我想将功能外包给一个助手类。我尝试如下: 在测试类中,我调用助手如下: 很遗憾,我收到以下错误消息: 组织。springframework。豆。工厂UnsatifiedDependencyExcept
我想创建一个助手(函数)来避免在Laravel 5中的所有视图之间重复代码。该函数应该使用数据库中的数据(雄辩),所以它不能只是一个简单的函数或通用视图编辑器。 理想情况下,它应该是这样的: 其中Helper类使用Eloquent来验证值。我希望避免更改所有控制器。这方面的最佳做法是什么? 更新;我有以下工作原型。该函数搜索文本并将从字典中找到的单词替换为超链接: 我想在视图中的几个文本块和段落中
问题内容: 我已经用C ++实现了一个类。我想将其与Python一起使用。 请提出逐步方法,并详细说明每个步骤。 这样的东西 现在,在Python中 请提出建议。我该怎么办?注意:我想知道手动的方法。我不希望任何第三方库依赖。 问题答案: 查看Boost.Python。这是一个用C ++编写python模块的库。 还要研究SWIG,它也可以处理其他脚本语言的模块。我过去曾使用它来为我的课程编写模块
我有以下三个类:我尝试制作1和2的例程,并使用tjava调用主类和来自1和2的方法,但我无法获取这些方法。 1) 我在Talend中为上面的代码(1)和2)做了例程,然后用tjava调用方法,但是不能这样做。我还尝试对所有的tjava都使用,并且在每个tjava上都做了onSubjob ok。我如何在Talend中调用这些类并调用方法呢?
对于vue-axios auth by api_token,我使用助手文件api.js。
我有一个很大的问题,我不知道我是否错过了一些明显的东西或什么,但我不能发现我的错误。我有类SPN、A和B。我重载了2次operator=。我想将A类型或B类型作为参数传递。 它不会抛出任何错误。但是如果我在类B或A中尝试make operator(),则使用参数SPN,如下所示: 它会抛出SPN未命名类型的错误。我甚至不能在A类或B类中创建类SPN对象。也许它不是如何客观编程工作,所以我想得到它,