在 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
的值,但是存在活动销毁的问题,同时这个方法也显的特别的乱。
请问有什么方法可以解决这样的问题吗,谢谢。
PHPz2017-04-18 09:29:19
不能傳值可以傳handle或方法回調啊,這樣應該可以吧。
你不是說到使用建構子嗎?你建構函式不能傳普通的值可以傳送物件引用,類似你給按鈕新增回應事件。