我想要做的是开始查看活动A(让我们说,使用volley' stringRequest),同时启动活动B,以及查询'结果将在活动B上处理(让我们说,将其打印在textview上)。怎么能实现这一目标?现在我只在活动A上处理了所有事情。
即。如果我在活动B的onCreate上有一些繁重的操作,我希望能够至少在后台运行API回调以节省时间。
我知道这是" onResponse发生之间的竞赛"并且"活动B准备好了,问题是,我如何克服这场比赛?
这是我在活动A上的代码 -
@Override
public void onClick(View view)
{
String url = "https://myapp.mydomain.com/this/is/my/query";
// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>()
{
@Override
public void onResponse(String response) {
String text = "Response is: "+ response;
Snackbar.make(mMainLayout, text, Snackbar.LENGTH_SHORT).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
String text = error.getMessage();
Snackbar.make(mMainLayout, text, Snackbar.LENGTH_SHORT).show();
}
});
// Add the request to the RequestQueue.
RequestHandler.getInstance(this).addToRequestQueue(stringRequest);
}
答案 0 :(得分:0)
您可以尝试在onResponse
中开始第二项活动public void onResponse(String response) {
String text = "Response is: "+ response;
Snackbar.make(mMainLayout, text, Snackbar.LENGTH_SHORT).show();
I=new Intent(Main.this,second.class);
i.putExtra("stringname", response);
}
答案 1 :(得分:0)
ActivityA
@Override
public void onResponse(String response) {
String text = "Response is: "+ response;
Snackbar.make(mMainLayout, text, Snackbar.LENGTH_SHORT).show();
Intent i=new Intent(ActivityA.this,ActivityB.class);
i.putExtra("result",text);
startActivity(i);
}
ActivityB
String result=getIntent().getExtras().getString("result");
//Handle response here
答案 2 :(得分:0)
使用广播接收器Example
当你从服务器得到响应然后在第二个活动中发送广播和注册接收者