在我的一个项目中,我使用loopj asynchttpclient与我的网站进行通信。 沟通部分运作良好,得到回应
我的活动看起来像protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); WebRequest test=new WebRequest(); test.callService(); }
WebRequest类为
public class WebRequest extends Activity { public void callService(){ AsyncHttpClient client = new AsyncHttpClient(); client.post("http://domain.com/dp/index.php", new AsyncHttpResponseHandler() { @Override public void onSuccess(String response) { Log.v("P",response); } @Override public void onFailure(Throwable e, String response) { Log.v("PS",e.toString()); } }); } }
我很困惑如何返回主要活动的响应,以便我可以创build该响应的列表视图。
我是新来的请提前帮助我
在你的WebRequest类中:
我不认为你想要这个类来扩展Activity 。 只有当您将页面显示在应用程序中时,才应该扩展Activity 。 你只是想执行一些代码,所以不需要扩展Activity 。
将您的呼叫服务方法更改为静态,并将AsyncHttpClient作为参数。
你的WebRequest类现在应该是这样的:
final class WebRequest { private AsyncHttpClient mClient = new AsyncHttpClient(); public static void callService(AsyncHttpResponseHandler handler) { mClient.post("http://domain.com/dp/index.php", handler); } }
在您的主要活动中:
现在你所要做的主要活动就是调用静态方法:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); WebRequest.callService(new AsyncHttpResponseHandler() { @Override public void onStart() { // Initiated the request } @Override public void onSuccess(String response) { // Successfully got a response } @Override public void onFailure(Throwable e, String response) { // Response failed :( } @Override public void onFinish() { // Completed the request (either success or failure) } }); }
在上面的callback中,执行您的活动中的视图所需的任何操作。 希望这可以帮助!