为什么每当我新安装的时候,我的android应用程序第一次挂起



每当我安装我的android应用程序时,它就会在我的手机上堵塞,在它创建后创建我的包含近5K个元素的xml数据库。它运行得非常平稳。。。。这让我的用户觉得我的应用程序充满了垃圾,所以他们通常不喜欢我的android应用程序。


请帮助我,因为我知道我的问题必须有一个解决方案,因为有很多应用程序的数据库比我的数据库还大,但它们不会挂起f

您必须使用异步任务在后台插入所有这些记录,请参阅此链接:http://developer.android.com/reference/android/os/AsyncTask.html

异步任务由doinbackground和onpostexecute两个主要部分组成,在doinbackGND中,我们可以使所有的UI独立机制,如数据库操作,执行httprequest。在postexecute中,我们可以进行UI操作

您的应用程序挂起,因为您在主线程上执行数据库创建,所以它会阻塞ui。你可以按照VINIL SASALA提到的方法,或者你可以做的是在应用程序第一次运行时创建所有数据库——它是一个启动屏幕。Splash用于加载额外的数据,因此请正确使用它。还要在启动屏幕上进行检查,以避免每次启动应用程序时都创建表格。简单的方法是检查表中是否有记录。如果有,则跳过表创建,如果没有,则创建并输入数据。这里有一个例子-

  new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    Intent intent=new Intent(Splash_Activity.this,Main_Screen_activity.class);
                    DB_Handler_food db1 = new DB_Handler_food(Splash_Activity.this);// db1 is object of database handler class

                    if(db1.getRecordCount()==0){   //get record count checks no. of records
                        //adding data in database food
                        Log.v("reching", "table 1");
                        db1.addData(new Table_items("Eggs",Const_String_Food.egg_benefits , Const_String_Food.egg_positives,"eggs" ));
                        db1.addData(new Table_items("Brown Rice",Const_String_Food.brown_rice_benefits,Const_String_Food.brown_rice_positives,"brown_rice"));
                        db1.addData(new Table_items("Black Beans",Const_String_Food.black_beans_benefits,Const_String_Food.black_beans_positives,"black_beans"));
                    }

相关内容

最新更新