无法从会议室数据库中删除表

我已经在我的应用程序中实现了房间持久性库。使用这个 i 是 1.将数据添加到表中 2.显示它 3.删除表 Im 在循环中执行这三个步骤。但这里的问题是,只有在重新启动应用程序后,才会删除表内容。意味着在我重新启动应用程序之前,表数据不会被删除。我的代码在这里


添加,读取,显示数据库表


public void DatabaseTask{

for(getting data from web server){

//Adding them to database

 AddToDatabase addToDatabase=new AddToDatabase(file.getId(),file.getName(),"punith@gmail.com");

                addToDatabase.execute();

}

//Reading Table from Database

  ReadFromDatabase readFromDatabase=new ReadFromDatabase();

            readFromDatabase.execute();

//Deleting table from database

  DeleteFromDatabase deleteFromDatabase=new DeleteFromDatabase();

            deleteFromDatabase.execute();


}

This DatabaseTask class will be executed every 15 minutes

用于添加、读取、删除的异步任务类


 private class AddToDatabase extends AsyncTask<String,String,String>{

      String id;

      String name,email;

        public AddToDatabase(String id,String name, String email){

            this.id=id;

            this.name=name;

            this.email=email;


      }

        @Override

        protected String doInBackground(String... strings) {

            User user=new User();

            user.setId(id);

            user.setName(name);

            user.setEmail(email);

            MainActivity.myAppDatabase.myDao().addUser(user);

            return null;

        }


        @Override

        protected void onPostExecute(String s) {

            Log.d("mPavan001", "add done");

            super.onPostExecute(s);

        }

    }

    private class ReadFromDatabase extends AsyncTask<String,String,String>{


        @Override

        protected String doInBackground(String... strings) {


            List<User> users=MainActivity.myAppDatabase.myDao().getUsers();

            for(User usr: users){

                String id=usr.getId();

                String name=usr.getName();

                String email=usr.getEmail();

                 info=info+"\n\n"+"id :"+id+"\n Name :"+name+"\n Email :"+email;

            }

            return null;

        }


如何解决此问题?请询问您是否需要更多详细信息。


拉丁的传说
浏览 141回答 2
2回答

MMTTMM

看起来您只是在删除数据,而不侦听其更改。请考虑使用 从数据库获取数据,并在 or 中进行观察。这样,您的视图将始终了解数据更改。LiveDataLiveDataFragmentActivity还有一件事是,您可能在删除数据后手动检查数据更改。如果是这样:请发布该块的代码。

九州编程

我做了一个愚蠢的错误,我使用信息字符串来显示数据库表值。但我没有在每次循环迭代时将其设置为 null。因此,它也曾经存储来自上一个循环迭代的数据,即使数据库表被删除了!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java