29
2020
03

如果现在要删除SQLite中表的一个字段如何做?

SQLite目前还不支持drop column,所以必须想出另外一种方法来进行表字段的删除。如下sql语句会复制一个和record表一样表结构的temp表出来,但是我们想要的是去除某一个字段(例如去除record表中的name字段,就不要复制它就好了),所以sql语句如下:create table temp as select recordId, customer, place, time from record where 1 = 1;  这样复制出来的表就会缺少“name”字段,然
29
2020
03

使用SQLite做批量操作有什么好的方法吗?

即使用事务处理进行优化,默认SQLite的数据库插入操作,如果没有采用事务的话,它每次写入提交,就会触发一次事务操作,而这样几千条的数据,就会触发几千个事务的操作,这就是时间耗费的根源
29
2020
03

了解SQLite中的事务处理吗?是如何做的?

使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。多用于大量数据操作时,能明显减少耗时。
29
2020
03

SharePreferences适用情形?使用中需要注意什么?

保存登录用户名密码等情形,应注意多进程并发读的时候数据可能不准确。需要注意:getSharedPreferences(“User”, Context.MODE_PRIVATE)方法中第二个参数需要了解Android的四种枚举方式下面是详细的解释: 私有模式 Context.MODE_PRIVATE 的值是 0; ①只能被创建这个文件的当前应用访问 ②若文件不存在会创建文件;若创建的文件已存在则会覆盖掉原来的文件追加模式 Context.MODE_
29
2020
03

Android中提供哪些数据持久存储的方法?

在Android中,可供选择的存储方式有SharedPreferences、文件存储、SQLite数据库方式、内容提供器(Content provider)和网络。
29
2020
03

Timer比AlarmManager实现心跳时更耗电原因

一. TimerAndroid 的 Timer 类可以用来计划需要循环执行的任务。 Timer 的问题是它需要用 WakeLock 让 CPU 保持唤醒状态,这样会大量消耗手机电量, 大大减短手机待机时间。这种方式不能满足我们的需求。二. AlarmManagerAlarmManager 是 Android 系统封装的用于管理 RTC 的模块,RTC (Real Time Clock) 是一个独立的硬件时钟,可以在 CPU 休眠时正常运行,在预设的时间到达时,通过中断唤醒 C
29
2020
03

列出几种常见的解决消息即时获取方案

轮询(Pull)方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息。SMS(短信消息)(Push)方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这种方式一般用户在经济上很难承受。持久连接(Push)方式:客户端和服务器之间建立长久连接,这样就可以实现消息的及时行和实时性。
29
2020
03

简要说明一下openfire、smack、spark

openfire是基于XMPP协议的即时通信的服务器端的一个实现,你不需要编写一行服务端的代码,实现一个简单的点对点通信或是简单的群聊.smack 是XMPP传输协议的Java实现,提供了一套API接口 可以连接服务端。一般用于快速开发手机客户端。spark是基于smack实现的一个XMPP即时通信客户端(PC端的)。
29
2020
03

简单阐述一下及时推送原理?

a) 传统获取服务器数据使用的是pull模式,是客户端向服务器请求数据。从客户端发起连接请求,获取到服务器数据后就关闭连接。当连接断开后,服务器就会失去客户端的地址,因此无法主动向客户端发送消息。b) 推送(push)是服务主动向客户端发送数据。它的原理是保持一个长连接,当客户端和服务器建立连接后不再断开,这样服务器随时有新消息都可以发送给客户端。长连接和短连接。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接。whi
29
2020
03

内存泄漏和内存溢出分别是什么?它们有什么关系?

内存泄露是指保存了不可能再被访问的变量引用,导致垃圾回收器无法回收内存。 也就是说: 在Java中有些对象的生命周期是有限的,当它们完成了特定的逻辑后将会被垃圾回收;但是,如果在对象的生命周期本来该被垃圾回收时这个对象还被别的对象所持有引用,那就会导致内存泄漏内存溢出是指虚拟机内存耗尽,无法为新对象分配内存,导致引用崩溃。典型的情况为加载多张大图,导致内存耗尽。当某个界面存在内存泄露,反复进入该界面,将导致一直有新对象创建但是无法回收,最终内存耗尽,产生内存溢出。
29
2020
03

C#中的委托是什么?事件是不是一种委托?

答 : 委托可以把一个方法作为参数代入另一个方法。                 委托可以理解为指向一个函数的引用。                 是,是一种特殊的委托
29
2020
03

一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。

答:public class MainClass                  {                  public static void Main()                 &n
29
2020
03

.NET和C#有什么区别

答:.NET一般指 .NET FrameWork框架,它是一种平台,一种技术。C#是一种编程语言,可以基于.NET平台的应用。
29
2020
03

Android 服务(Service)

服务是一个后台运行的组件,执行长时间运行且不需要用户交互的任务。即使应用被销毁也依然可以工作。服务基本上包含两种状态 -状态 描述Started Android的应用程序组件,如活动,通过startService()启动了服务,则服务是Started状态。一旦启动,服务可以在后台无限期运行,即使启动它的组件已经被销毁。Bound 当Android的应用程序组件通过bindService()绑定了服务,则服务是Bound状态。Bound状态的服务提供了一个客户服务器接口来允许组件与服务进行交互,如
29
2020
03

Android 广播接收器(Broadcast Receivers)

广播接收器用于响应来自其他应用程序或者系统的广播消息。这些消息有时被称为事件或者意图。例如,应用程序可以初始化广播来让其他的应用程序知道一些数据已经被下载到设备,并可以为他们所用。这样广播接收器可以定义适当的动作来拦截这些通信。有以下两个重要的步骤来使系统的广播意图配合广播接收器工作。创建广播接收器注册广播接收器还有一个附加的步骤,要实现自定义的意图,你必须创建并广播这些意图。创建广播接收器广播接收器需要实现为BroadcastReceiver类的子类,并重写onReceive()方法来接收以I