在 android
中类似于 handler
或则 asynctask
这样的类,属于设置成静内部态类或则单独新建一个类,这个时候如果想要引用到其他的变量需要使用构造器的方式来传入参数,但是 java
中是值传递,类似于 int
类型的参数的值是无法改变的。
我的困难是
protected Integer doInBackground(Integer... mode) {
if (!isCancelled()) {
switch (mode[0]) {
case GET_LATEST: {
if ((temp = new MovieOkhttp(mcontext).
getPopularMovieResults(FIR_PAGE)) != null) {
mList.clear();
mList.addAll(temp);
}
mpage = 1;
break;
}
case GET_MORE: {
mpage = mpage + 1;
if ((temp = new MovieOkhttp(mcontext).
getPopularMovieResults(mpage)) != null) {
mList.addAll(temp);
}
break;
}
}
}
这里的 mpage
并不能改变 activity
中的 page
的值所以获取到的数据一直都是一样的。请问类似于这样的情况应该如何解决。
我想的方法是在调用 asynctask
的时候手动更改 page
的值,但是存在活动销毁的问题,同时这个方法也显的特别的乱。
请问有什么方法可以解决这样的问题吗,谢谢。
Jika anda tidak boleh menghantar nilai, anda boleh menghantar pemegang atau kaedah panggil balik Ini sepatutnya baik.
Bukankah anda menyebut menggunakan pembina? Pembina anda tidak boleh melepasi nilai biasa tetapi boleh menghantar rujukan objek, sama seperti cara anda menambah peristiwa respons pada butang.