【发布时间】:2016-09-06 19:36:05
【问题描述】:
我有 AsyncTask 类,方法如下(类:ApiConnector):
@Override
protected String doInBackground(Void... voids)
{
return getToken(); //<-- do many the most important things and return String
}
和
@Override
protected void onPostExecute(String result)
{
super.onPostExecute(result);
}
然后在我的活动中:
new ApiConnector()
{
@Override
public void onPostExecute(String result)
{
Log.d("here: ", result);
}
}.execute();
当我执行一次时它工作得很好,但我必须在无限循环中执行此操作才能在我的市场上获取新鲜的令牌,比如新鲜的苹果。我试过这样的事情:
while (true)
{
new ApiConnector()
{
@Override
public void onPostExecute(String result)
{
Log.d("here!", result);
}
}.execute();
Thread.sleep(1000);
}
还有很多愚蠢的事情,但我找不到工作方式。所有线程业务对我来说都很棘手。给我一些力气,我肯定能做到这一点。
【问题讨论】:
-
在循环中调用异步?这是一个非常糟糕的决定,伙计。使用
Timer或Handler在给定时间段内更新您的令牌或其他任何内容。你也可以callOnExecutor()AsyncTask 并行运行多个线程 -
我是第一次在 android 中写东西,所以非常糟糕的决定对我来说很正常。感谢帮助,我会阅读更多关于 Timer 或 Handler 的内容。
标签: java android android-asynctask