首页 > 解决方案 > 如何开发一个分离数据层和视图层的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()

    }
}

我可以通过这个实现我的结果,但我不想把所有的工作都放在活动线程中。有人可以指导实现这一目标的正确方法吗?或者帮助我提供一些文档。

标签: androidkotlin

解决方案


这是 Android生命周期感知组件 codelab。它会做你所要求的。这是 Android Jetpack 的架构组件部分,它是一组 Android 库,可帮助您以稳健、可测试和可维护的方式构建应用程序。

这里也是android-sunflower一个园艺应用,展示了使用 Android Jetpack 进行 Android 开发的最佳实践。


推荐阅读