在 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
的值,但是存在活动销毁的问题,同时这个方法也显的特别的乱。
请问有什么方法可以解决这样的问题吗,谢谢。
If you cannot pass a value, you can pass a handle or method callback. This should be fine.
Didn’t you mention using constructors? Your constructor cannot pass ordinary values but can pass object references, similar to how you add response events to buttons.