android - 如何开发一个分离数据层和视图层的android应用程序
问题描述
我是 Android 开发的新手。在 koltin 中有一个 android 应用程序,其中我必须发出一个 http post 请求以获取数据列表作为响应。我在活动课上做了如下。MainActivity.kt
class MainActivity : AppCompatActivity(), {
private fun getAppList() {
var builder = AlertDialog.Builder(this@MainActivity)
builder.setTitle("App Response")
doAsync {
sslCertficate.disableSSLCertificateChecking()
var headers = HashMap<String, String>()
headers["Content-type"] = "application/json; charset=UTF-8"
val res = HTTPClient("https://sample-myapi-launcher.prod.com/list")
.setMethod("POST")
.setHeaders(headers)
.setBody(getRequestBody(userInfo.toString()))
.getResponse()
.response
uiThread {
builder.setMessage(res)
var dialog: AlertDialog = builder.create()
dialog.show()
}
Log.e("Response List", res)
}
}
private fun getRequestBody(userInfo: String): String {
//code for geting request body
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_navigator)
setSupportActionBar(toolbar)
//calling api request method
getAppList()
}
}
我可以通过这个实现我的结果,但我不想把所有的工作都放在活动线程中。有人可以指导实现这一目标的正确方法吗?或者帮助我提供一些文档。
解决方案
这是 Android生命周期感知组件 codelab。它会做你所要求的。这是 Android Jetpack 的架构组件部分,它是一组 Android 库,可帮助您以稳健、可测试和可维护的方式构建应用程序。
这里也是android-sunflower一个园艺应用,展示了使用 Android Jetpack 进行 Android 开发的最佳实践。
推荐阅读
- bixby - 关于bixby中缩略图卡上的点击方法
- r - 按 R 中的时间内容过滤字符串
- javascript - 使用 JQuery 解析数字的问题
- sql - 更新操作失败,SQLCODE=-803,如何排除故障?
- php - 如何选择检索到的数据
- maven - 第三方可以依赖通过相对路径引用父 pom 的模块吗?
- django - Django 中的自定义 url 模式
- angular - Sock.js Websocket:缺少升级标头
- c# - 尝试访问并行数组中的索引时,如何避免循环遍历整个数组
- .net-core - 在 .NET Core 2.0 或更高版本中使用 Pingfederate