Android开发中的一些小知识点记录
发布时间:2021-12-07 15:49 浏览次数:次
1、recreate()和startActivity()的区别
两个都是重启Activity的方法
recreate()除了调用Activity生命周期方法外,还调用了onSavedInstanceState() 和 onRestoreInstanceState() ,在onSavedInstanceState() 里保存了View的状态
startActivity()只调用了Activity生命周期方法,没有保存View的状态,完全重启了Activity
如果想完成重启Activity,就调用startActivity()
如果想保存View的状态并在onRestoreInstanceState()取数据的时候,就调用recreate()
2、通过recreate() 和setTheme()切换系统主题
setTheme() 一般是在onCreate()中的super.onCreate(savedInstanceState) 和 setContentView() 中间位置调用的,主要作用就是设置系统主题
通过recreate() 让Activity重新进入,达到切换系统主题的效果。recreate() 会调用onSavedInstanceState() 在这里把系统主题保存起来,在onCreate() 把系统主题取出进行应用,但这样做只是临时的保存,如果作为设置的话需要做到持久化存储
3、接口回调的写法
先是创建一个接口,接口里面写需要回调的多个方法
interface TestCallback {
fun onTestCallback()
}
1
2
3
4
4、然后是声明接口对象,设置接口,并用对象调用这个方法(上面两步可以在同一个类中,也可以不在同一个类中)
class Test {
private lateinit var testCallback: TestCallback
fun setOnTestCallback(testCallback: TestCallback){
this.testCallback = testCallback
}
fun onCreate(){
testCallback.onTestCallback()
}
}
1
2
3
4
5
6
7
8
9
10
11
12
5、最后是创建类对象,用对象去调用接口回调
var test: Test = Test()
test.setOnTestCallback(object : TestCallback {
override fun onTestCallback() {
}
})
1
2
3
4
5
6
Retrofit提交文件的写法
RequestBody requestFile = RequestBody.create(MediaType.parse(“multipart/form-data”), file);
MultipartBody.Part body = MultipartBody.Part.createFormData(“file”, file.getName(), requestFile);
然后在ApiService里面传递的参数写为:
uploadFile(@Part MultipartBody.Part file);
本文来源于网络,若有侵权请联系3449817223#qq.com,将在第一时间删除。