如何运行从服务器获取数据的后台线程,如果响应不为null,则在android中向listview添加数据
我正在创建一个聊天窗口,有两种方法,一种用于发送消息,另一种用于接收消息。当我单击“发送”按钮时,我希望创建一个方法调用并向服务器发送消息,如果有任何响应消息,则创建一个后台线程,然后将该消息添加到列表中。我如何才能做到这一点 我希望如果有任何响应消息,那么响应消息调用一个线程,检查是否有任何消息接收,然后将其添加到listview,如果没有,则不向列表添加任何内容如何运行从服务器获取数据的后台线程,如果响应不为null,则在android中向listview添加数据,android,Android,我正在创建一个聊天窗口,有两种方法,一种用于发送消息,另一种用于接收消息。当我单击“发送”按钮时,我希望创建一个方法调用并向服务器发送消息,如果有任何响应消息,则创建一个后台线程,然后将该消息添加到列表中。我如何才能做到这一点 我希望如果有任何响应消息,那么响应消息调用一个线程,检查是否有任何消息接收,然后将其添加到listview,如果没有,则不向列表添加任何内容 有人能帮我吗?最好的方法是通过扩展AsyncTask类并重写以下方法来执行AsyncTask: //用于从服务器获取数据,在单独的
有人能帮我吗?最好的方法是通过扩展AsyncTask类并重写以下方法来执行AsyncTask: //用于从服务器获取数据,在单独的线程中运行
protected Long doInBackground(URL... urls) { }
//如果您想在其间显示一些数据,请更新UI。在UI线程上运行
protected void onProgressUpdate(Integer... progress) { }
//用于用户界面的最终更新。在UI线程上运行
protected void onPostExecute(Long result) { }
您可能还想看看这方面的官方文档,我在本例中看到的是 你将有3节课 class1将扩展AsyncTask,并具有从服务器获取新消息的逻辑 class2将定期ping服务器以检查是否有任何新消息。 如果是,它将发送广播 class3将充当广播接收器。在接收广播时,它将执行class3以获取消息。onPostExecute方法将返回消息对象 现在,您将在实际的UI上显示该消息 希望对您有所帮助。
//onCreate
//onCreate
new BackGroundLoginTask().execute();
//async task
public class performBackgroundTask extends AsyncTask < Void, Void, Void >
{
private ProgressDialog Dialog = new ProgressDialog(PlacesList.this);
protected void onPreExecute()
{
Dialog.setMessage("Downloading");
Dialog.show();
}
protected Void doInBackground(Void... params)
{
// write here the code to download or to perform any background task.
//perform background task
return null;
}
protected void onPostExecute(Void unused)
{
listview.setAdapter(new PlacesAdapter());
Dialog.dismiss();
}
}
新建BackGroundLoginTask().execute();
//异步任务
公共类performBackgroundTask扩展了AsyncTask
{
private ProgressDialog=新建ProgressDialog(PlacesList.this);
受保护的void onPreExecute()
{
setMessage(“下载”);
Dialog.show();
}
受保护的Void doInBackground(Void…参数)
{
//在这里编写代码以下载或执行任何后台任务。
//执行后台任务
返回null;
}
受保护的void onPostExecute(未使用的void)
{
setAdapter(新的PlacesAdapter());
Dialog.dismise();
}
}
你能给我举一个Asynk任务的例子吗?看看: