我正在开发一个应用程序,我需要执行多个HTML请求。我需要确保执行某些POST请求(例如,用户输入需要存储在服务器中的数据)。通常,我会在用户与之交互的同一个Activity中使用AsyncTask,但是在用户进行输入后,此活动立即关闭,POST请求可能尚未完成(由于连接速度缓慢或其他原因)。在这种情况下,活动将被销毁(据我所知)AsyncTask无法完成其工作。
将数据发送到服务器的正确方法与活动的生命周期无关?
答案 0 :(得分:1)
您可以在IntentService中运行作业,服务将在完成后自行销毁。
关于此事的Here is a relevant tutorial(相关代码复制如下)。
将运行您的后台代码的IntentService。
public class MyIntentService extends IntentService {
public MyIntentService(String name) {
// Used to name the worker thread
// Important only for debugging
super(MyIntentService.class.getName());
setIntentRedelivery(true);
}
@Override
protected void onHandleIntent(Intent intent) {
// Invoked on the worker thread
// Do some work in background without affecting the UI thread
}
}
在清单中注册您的IntentService。
<service
android:name="com.example.app.MyIntentService">
</service>
无论何时需要运行它,都要调用IntentService。
Intent intent = new Intent(this, MyIntentService.class);
// Put some data for use by the IntentService
intent.putExtra("foo", "bar");
startService(intent);