我的Android应用程序中有一个名为UploadManager的AsyncTask,它检查已处理的项目,并将它们上传到服务器.
为此,我使用ScheduledExecutorService.scheduleAtFixedRate每1分钟检查一次项目,并将它们上传到服务器.
但是,有时会创建多个线程池(这种情况发生在10%的时间),因此有时会向服务器发送两次相同的请求,尽管这种并发性在服务器和服务器上都得到了处理.客户端级别,但我仍然不希望这种情况发生在客户端.
下面是代码的样子.
在MainActivity(start-activity)中,我将UploadManager启动为:
public class MainActivity extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.
.
.
new UploadManager().execute(this);
}
}
UploadManager的工作原理如下:
public class UploadManager extends AsyncTask {
private ScheduledExecutorService scheduledExecutorService;
private static final int NUM_OF_THREADS = 5;
private static final int DELAY_IN_SECONDS = 60;
private Context contex