kotlin android应用,Android kotlin应用

1 Anko 异步

async() {

Request(url).run()

uiThread { longToast("Request performed") }

}

2 单例

1--------------

class App : Application() {

companion object {

private var instance: Application? = null

fun instance() = instance!!

}

override fun onCreate() {

super.onCreate()

instance = this

}

}

2------------

class App : Application() {

companion object {

var instance: App by Delegates.notNull()

}

override fun onCreate() {

super.onCreate()

instance = this

}

}

3 lazy 数据库

class App : Application() {

val database: SQLiteOpenHelper by lazy {

MyDatabaseHelper(applicationContext)

}

override fun onCreate() {

super.onCreate()

val db = database.writableDatabase

}

}

4 ManagedSqliteOpenHelper

public fun use(f: SQLiteDatabase.() -> T): T {

try {

return openDatabase().f()

} finally {

closeDatabase()

}

}

val result = forecastDbHelper.use {

val queriedObject = ...

queriedObject

}

use 接收一个 SQLiteDatabase 的扩展函数。这表示,我们可以使

用 this 在大括号中,并且处于 SQLiteDatabase 对象中。

定义表

object CityForecastTable {

val NAME = "CityForecast"

val ID = "_id"

val CITY = "city"

val COUNTRY = "country"

}

object DayForecastTable {

val NAME = "DayForecast"

val ID = "_id"

val DATE = "date"

val DESCRIPTION = "description"

val HIGH = "high"

val LOW = "low"

val ICON_URL = "iconUrl"

val CITY_ID = "cityId"

}

继承ManagedSQLiteOpenHelper

class ForecastDbHelper() : ManagedSQLiteOpenHelper(App.instance,

ForecastDbHelper.DB_NAME, null, ForecastDbHelper.DB_VERS

ION) {

...

}

companion object {

val DB_NAME = "forecast.db"

val DB_VERSION = 1

val instance: ForecastDbHelper by lazy { ForecastDbHelper()

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值