静态方法上异步任务的java Get计数始终返回0
伙计们,我在这里呆了大约2个小时,有一件事看起来很简单,但从来没有返回对象的数量
我将解释whit代码:
下载文件异步任务。java(是我的异步任务)
在OnPostExecute中,我这样做:
if(customAdapter != null){
Log.i("solteiroApp","object count is "+customAdapter.getCount());
ResultActivity.rec_count = customAdapter.getCount(); // HERE I PASS COUNT
}
结果性。爪哇
public class ResultActivity extends Activity {
public static int rec_count;
...
问题是:当我在onCreate
中获取ResultActivity.rec_count
时,总是返回0,但我会按照之前显示的方式创建日志:
Log.i("solteiroApp","object count is "+customAdapter.getCount());
这将正确返回计数
我不知道,因为这是因为,如果有人有建议获取此计数,请告诉我,im小时在这里尝试返回此计数以显示在活动中,但在我执行时没有返回值,如果我再次使用AsyncTask返回以前的值,请有人帮助我
# 1 楼答案
我明白了
在我的AsyncTask中,我将how参数传递给TextView,并在AsyncTask how WeakReference中声明:
建造师:
和onPostExecute:
谢谢大家的帮助,有时是好的,有时是错误的,回来,新的想法回来呵呵,谢谢大家
# 2 楼答案
你不能做你想做的事。当Android操作系统(重新)创建要运行的上下文时,它将销毁并重新创建静态类及其静态变量。我还了解到(艰难的方式)单例类不能用于将数据从一个活动保存到另一个活动
您需要做的是将数据传递到新活动的Intent Bundle中,或者将其保存在SharedReference中。为此使用回调接口是个坏主意,因为您希望操作向前移动到下一个活动,并且(如果需要)允许操作系统销毁上一个活动
在为下一个活动创建意图时,使用意图。putExtra(…)方法添加要传递给新活动的数据。在新活动中,使用getIntent()。获取*数据类型*额外(…)方法检索数据
# 3 楼答案
1.在调用OnPostExecute之前,是否在onCreate中获取rec_计数?检查你的代码 2、如果没有,请在rec_count之前添加volatile:public static volatile int rec_count,请尝试一下,希望能对您有所帮助