每当我安装我的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"));
}