安卓中的计时器需要用到数据库吗?

安卓中的计时器需要用到数据库吗?,第1张

每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与 *** 作系统无关的SQL数据库—SQLite。

SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了。

SQLite已经被多种软件和产品使用,Mozilla FireFox就是使用SQLite来存储配置数据的,Android和iPhone都是使用SQLite来存储数据的。

SQLite体系结构图如下:

编译器包括Tokenizer(词法分析器)、 Parser(语法分析器)、Code Generator(代码产生器),后端由B-tree,Pager,OS Interface组成。

B-tree的职责是负责排序,维护多个数据库页之间错综复杂的关系,将页面组织成树状结构,页面就是树的叶子

Pager负责传输,根据B-tree的请求从磁盘读取页面或者写入页面。

公共服务中有各种实用的功能比如:内存分配、字符串比较,Unicode转换等。

其实你这个可能不是定时器的问题.比如:try{dbhelper.con.open() while(dataread.read()){ dbhelp.con.open() cmd.ExecuteNonQuery() dbhelper.close()} dr.close{ }catch(){}finally{dbhelper.con.close()} 写得很粗糙, 我的意思是: 在执行datareader这个 *** 作时, 如果中间又插入了新的数据库连接和关闭 *** 作, 就容易出错, 唯一的办法是: 想办法把两个 *** 作分开来, 千万不能嵌套!

这样的任务最好是新建数据库任务来完成。

用程序实现效率不高,效果不太保证。

在Global.asax中加入以下代码

void Application_Start(object sender, EventArgs e)

{

//在应用程序启动时运行的代码

//定义定时器

System.Timers.Timer myTimer = new System.Timers.Timer(86400)//设置时间为1天

myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed)

myTimer.Enabled = true

myTimer.AutoReset = true

myTimer.Start()

}

//每隔30秒读取数据库中待发送的邮件列表

static void myTimer_Elapsed(object source, System.Timers.ElapsedEventArgs e)

{

//你要执行的代码

}

void Application_End(object sender, EventArgs e)

{

//在应用程序关闭时运行的代码

//解决IIS应用程序池自动回收的问题

//防止长时间没人访问时进程池回收而导致不能定时触发事件。

System.Threading.Thread.Sleep(1000)

//激发Application_Start

string url = "你的网址"

System.Net.HttpWebRequest myHttpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url)

System.Net.HttpWebResponse myHttpWebResponse = (System.Net.HttpWebResponse)myHttpWebRequest.GetResponse()

System.IO.Stream receiveStream = myHttpWebResponse.GetResponseStream()//得到回写的字节流

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10870313.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存