我有3个活动可以进行某种网络访问并获得3个相应xml布局的响应(我将其称为A,B,C)。 A通过Intent将数据传递给B,B通过Intent将数据传递给C.当我执行应用程序时,只有第三个活动/屏幕显示在模拟器上。
如何保留序列,如A首先显示,我按一个按钮然后转到B然后按一个按钮,然后转到C.(我必须使用活动生命周期,因为每个活动都得到响应后网络访问。)
代码(相关部分)是:
A-
username = (EditText) findViewById(R.id.editTextusername);
password = (EditText) findViewById(R.id.editTextpassword);
submit = (Button)findViewById(R.id.submit);
//sampletext = (TextView) findViewById(R.id.textView1);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(username.getText().length()>0 && password.getText().length()>0)
{
URLconnector ss = new URLconnector();
ss.execute("SOME URL");
//network access in an async task, get response,
}
Intent part of activity A - on post execute method of async task
if(result != null)
{
Intent intentA = new Intent(mContext, B);
Bundle bundle = new Bundle();
bundle.putString("responsedata",result.substring);
tokenIntent.putExtras(bundle);
startActivity(intentA);
B-
URLconnector ss = new URLconnector();
ss.execute("SOME URL");
//network access in an async task, get response,
}
Intent part of activity B - on post execute method of async task
if(result != null)
{
Intent intentB = new Intent(mContext, c);
startActivity(tokenIntent);
c-
URLconnector ss = new URLconnector();
ss.execute("SOME URL");
//network access in an async task, get response,
}
Intent part of activity c- on post execute method of async task
if(result != null)
{
text3.setText(result);
}
答案 0 :(得分:0)
如果想要的效果是让一个触发器在下一个触发器之间,并且您希望它们在两者之间暂停,那么您需要从用户那里获得某种阻止请求,防止它进入下一个屏幕。
如果你让他们只是互相呼叫,那么他们肯定会比你设置的任何视觉提示更快地发射。根据您的要求,提出警报消息或提供您提到的按钮以继续前进。听起来好像你的建筑设计最好不要在一个屏幕上显示你想要的一切,而不是在一个活动中使用多个屏幕。而不只是通过所有三个进展。也许2个AsyncTasks正在为你工作。