应用程序有多个activity,每个activity都要操作数据库(sql 2005),不想在每个activity都启用线程,感觉太耗费资源。所以想所有的activity都用一个线程来操作数据库,不知道各位高手有没有好的方案?谢谢!Android多线程SQL

解决方案 »

  1.   

    所有的用一个?  那你岂不是在线程里有很多复杂的逻辑?可以用SynTask试试
      

  2.   

    在service里开个线程专门用来操作数据库,然后activity通过startService来调用
      

  3.   

    弄个Activity父类.其实随便建个DButil类就行了.其它activity调用这个单例类
      

  4.   

    是不是要专门写个service程序,还是说service客户和应用程序一起,应用程序启动的时候生产service,退出的时候service也退出。
      

  5.   

    弄个Activity父类.其实随便建个DButil类就行了.其它activity调用这个单例类
    有专门的dbutil类,但是就是要在线程里面执行数据库操作,
      

  6.   

    弄个Activity父类.其实随便建个DButil类就行了.其它activity调用这个单例类
    有专门的dbutil类,但是就是要在线程里面执行数据库操作,
    写一个activity父类
      

  7.   

    弄个Activity父类.其实随便建个DButil类就行了.其它activity调用这个单例类
    有专门的dbutil类,但是就是要在线程里面执行数据库操作,
    写一个activity父类
    写个父类是什么意思?不太明白?
      

  8.   

    是不是要专门写个service程序,还是说service客户和应用程序一起,应用程序启动的时候生产service,退出的时候service也退出。
    在你的android项目里写一个service类不用bind的方式
      

  9.   

    考虑使用HandlerThread类,并将其实例放在一个Service或者单例对象中去。
      

  10.   

    我想多activity共用一个线程主要是为了节约资源,提供速度,不知道service或者单例对象响应速度如何?
      

  11.   

    我想多activity共用一个线程主要是为了节约资源,提供速度,不知道service或者单例对象响应速度如何?
    单例对象就是直接调用方法一样,本地的Service也和调用方法一样,不存在响应速度的问题。除非是不同进行间通信,否则不会存在你想像的问题。就算是进程间使用Service通信,内部也是通过Binder机制来实现了,速度应该很快的。
      

  12.   

    我想多activity共用一个线程主要是为了节约资源,提供速度,不知道service或者单例对象响应速度如何?
    单例对象就是直接调用方法一样,本地的Service也和调用方法一样,不存在响应速度的问题。除非是不同进行间通信,否则不会存在你想像的问题。就算是进程间使用Service通信,内部也是通过Binder机制来实现了,速度应该很快的。
    我用这个单例对象执行数据库操作,有时候是要返回大量数据给调用的activity,这中间会存在什么问题吗?谢谢!
      

  13.   

    我想多activity共用一个线程主要是为了节约资源,提供速度,不知道service或者单例对象响应速度如何?
    单例对象就是直接调用方法一样,本地的Service也和调用方法一样,不存在响应速度的问题。除非是不同进行间通信,否则不会存在你想像的问题。就算是进程间使用Service通信,内部也是通过Binder机制来实现了,速度应该很快的。
    我用这个单例对象执行数据库操作,有时候是要返回大量数据给调用的activity,这中间会存在什么问题吗?谢谢!
    我认为没有问题,你查询SQL的方法实际上是在线程中运行的,所以不会对UI造成影响,当查询完后,你会送给UI。数据量大只会增加内存,并不会有调用的性能存在。
      

  14.   

    我想多activity共用一个线程主要是为了节约资源,提供速度,不知道service或者单例对象响应速度如何?
    单例对象就是直接调用方法一样,本地的Service也和调用方法一样,不存在响应速度的问题。除非是不同进行间通信,否则不会存在你想像的问题。就算是进程间使用Service通信,内部也是通过Binder机制来实现了,速度应该很快的。
    我用这个单例对象执行数据库操作,有时候是要返回大量数据给调用的activity,这中间会存在什么问题吗?谢谢!
    我认为没有问题,你查询SQL的方法实际上是在线程中运行的,所以不会对UI造成影响,当查询完后,你会送给UI。数据量大只会增加内存,并不会有调用的性能存在。
    单例线程和servic4e哪个要好点呢?
      

  15.   

    我想多activity共用一个线程主要是为了节约资源,提供速度,不知道service或者单例对象响应速度如何?
    单例对象就是直接调用方法一样,本地的Service也和调用方法一样,不存在响应速度的问题。除非是不同进行间通信,否则不会存在你想像的问题。就算是进程间使用Service通信,内部也是通过Binder机制来实现了,速度应该很快的。
    我用这个单例对象执行数据库操作,有时候是要返回大量数据给调用的activity,这中间会存在什么问题吗?谢谢!
    我认为没有问题,你查询SQL的方法实际上是在线程中运行的,所以不会对UI造成影响,当查询完后,你会送给UI。数据量大只会增加内存,并不会有调用的性能存在。
    单例线程和servic4e哪个要好点呢?
    都差不多吧,因为都是本地的操作,而不是IPC。
    本地Service你可以参考以下代码:(来自己于官方网站http://developer.android.com/guide/components/bound-services.html#Binder)public class LocalService extends Service {
        // Binder given to clients
        private final IBinder mBinder = new LocalBinder();
        // Random number generator
        private final Random mGenerator = new Random();    /**
         * Class used for the client Binder.  Because we know this service always
         * runs in the same process as its clients, we don't need to deal with IPC.
         */
        public class LocalBinder extends Binder {
            LocalService getService() {
                // Return this instance of LocalService so clients can call public methods
                return LocalService.this;
            }
        }    @Override
        public IBinder onBind(Intent intent) {
            return mBinder;
        }    /** method for clients */
        public int getRandomNumber() {
          return mGenerator.nextInt(100);
        }
    }
      

  16.   

    我用application保存线程对象,然后其他activity可以用获取application,然后获取线程对象。昨晚测试是可以的,其他activity也可以用数据库操作线程。
    不知道这样有没有什么潜在问题或者性能或者资源问题?
      

  17.   

    实际上,你这样做的话,只要你的应用没有被系统强制杀掉,该线程都是一直存在的,包括你退出主界面也一样(退出主界面并不代表程序真正退出)。这种做法我觉得还不如用Service好。楼主,啥时候给分呀。