如何在脱机工作时改进android应用程序

如何在脱机工作时改进android应用程序,android,sqlite,Android,Sqlite,我在android上有一个项目,通常它使用VPN并在SQLServer中保存信息,但现在我需要离线保存信息,我做了一个sqlite数据库,并使用try和cath(因为它在许多活动中进行查询)来评估连接在何处丢失,但工作非常缓慢,有时应用程序会停止。我该如何改进这一点?或者有没有其他方法来检测它在哪里失去了连接 有很多方法可以改进android应用程序中的SQLite设置 我建议通过服务或某种异步任务将应用程序的数据库查询代码移动到工作线程中(这有其自身的一些缺点) 这里有一个很好的教程,可以帮助

我在android上有一个项目,通常它使用VPN并在SQLServer中保存信息,但现在我需要离线保存信息,我做了一个sqlite数据库,并使用try和cath(因为它在许多活动中进行查询)来评估连接在何处丢失,但工作非常缓慢,有时应用程序会停止。我该如何改进这一点?或者有没有其他方法来检测它在哪里失去了连接

有很多方法可以改进android应用程序中的SQLite设置

我建议通过服务或某种异步任务将应用程序的数据库查询代码移动到工作线程中(这有其自身的一些缺点)

这里有一个很好的教程,可以帮助你找到正确的方向


我使用异步任务,但有时效果很好,有时速度很慢。您有关于如何使用异步任务的示例代码吗?有些单词是西班牙语的,这是异步任务方法的一部分。请先调用doInBackgorud,然后重试{rs=connection.getCommissionAcion(“选择cos.ID\u委托,cos.FECHA\u委托,cli.ID\u客户,cli.N\u客户”+”从委托中选择cos“+”作为cos“+”在cos.ID\u客户=cli.ID\u客户“+”中,cos.ID\u客户=“+idUser+”和cos.BLIQUIDADO=0订单(按客户N\u客户”);conexion=1;}然后我使用catch,因为如果没有任何连接,它会在sqlite catch(异常e){Cursor Cursor=database.rawQuery(“选择cos.ID\u委托,cos.FECHA\u委托,cli.ID\u CLIENTE,cli.N\u CLIENTE”+”中将委托作为cos“+”在cos.ID_CLIENTE=cli.ID_CLIENTE“+”上以cli的形式内部连接客户端,其中cos.ID_GERENTE=“+idUser+”和cos.BLIQUIDADO=0按cli.N_CLIENTE排序,新字符串[]{});因此,我在每个查询中都这样做,在没有任何连接时使用try for normal flow和cath。此方法是公共类GetTask任务的一部分