两个在同一个包的Activity,暂且叫做A1,A2
  在A2里面有一个按钮,我想通过点击它返回A1.  
  不能用    startActivity(new Intent(A2.this,A1.class)); 因为这样在生命周期里会调用 onCreate();
  我在 A1 的 onCreate() 里面的逻辑不允许我在 A2 里面调用 onCreate();  求教各位大侠 有没其他的方法!!!

解决方案 »

  1.   

    再说清楚点,你把你想要的  写出来
    比如:
    A1 ONCREATE
    A1 ONSTART
    A1 ONRESUME...
    你接着写。
      

  2.   

    03-31 10:45:59.284: INFO/Activity(371): FirstActivity-->onCreate
    03-31 10:45:59.284: INFO/Activity(371): FirstActivity-->onStart
    03-31 10:45:59.294: INFO/Activity(371): FirstActivity-->onResume//一程序运行03-31 10:47:33.544: INFO/Activity(371): SecondActivity-->onCreate//点进二程序
    03-31 10:47:33.544: INFO/Activity(371): SecondActivity-->onStart
    03-31 10:47:33.554: INFO/Activity(371): SecondActivity-->onResume
    03-31 10:47:34.034: INFO/Activity(371): FirstActivity-->onStop//这里onStop,
    通过设置主题theme.Dilog使它成为onPause这里是点击返回
    03-31 10:48:23.374: INFO/Activity(371): SecondActivity-->onPause
    03-31 10:48:23.544: INFO/Activity(371): FirstActivity-->onRestart
    03-31 10:48:23.544: INFO/Activity(371): FirstActivity-->onStart
    03-31 10:48:23.544: INFO/Activity(371): FirstActivity-->onResume
    03-31 10:48:23.944: INFO/Activity(371): SecondActivity-->onStop
    03-31 10:48:23.944: INFO/Activity(371): SecondActivity-->onDestroy我用双向oncreateresult写的。
      

  3.   

    我还是把我的程序贴上来吧
    这是Activity01
    public class OptionPage1 extends Activity {
    TextView textview;
    Button button1;
    Button button2;
    EditText edittext;
    public static final String SETTING_INFOS = "SETTING_Infos";
    public static final String CONTENT = "CONTENT"; @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.firstpage); textview = (TextView) findViewById(R.id.t1);
    button1 = (Button) findViewById(R.id.b1);
    button2 = (Button) findViewById(R.id.b2); edittext = (EditText) findViewById(R.id.etext); // 获取一个SharedPreferences对象
    SharedPreferences settings = getSharedPreferences(SETTING_INFOS, 0);
    // 取出保存的CONTENT
    String content = settings.getString(CONTENT, "");
    edittext.setText(content); textview.setText("``````"); //if (edittext.getText().toString().trim().equals("")) { button1.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) {
    // TODO Auto-generated method stub
    // LayoutInflater factory =
    // LayoutInflater.from(OptionPage1.this);
    // final View DialogView =
    // factory.inflate(R.layout.liulianglist,null);
    AlertDialog dlg = new AlertDialog.Builder(OptionPage1.this)
    .setTitle("请选择您的包月套餐").setItems(
    new String[] { "```", "```",
    "```", "```", "```",
    "```", },
    new DialogInterface.OnClickListener() {
    public void onClick(
    DialogInterface dialog,
    int which) {
    switch (which) {
    case 0:
    edittext.setText("10");
    break;
    case 1:
    edittext.setText("20");
    break;
    case 2:
    edittext.setText("30");
    break;
    case 3:
    edittext.setText("50");
    break;
    case 4:
    edittext.setText("100");
    break;
    case 5:
    edittext.setText("300");
    break;
    }
    dialog.dismiss();
    }
    }).create();
    dlg.show();
    } });
    button2.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) {
    // TODO Auto-generated method stub
    if (edittext.getText().toString().trim().equals("")) {
    Toast toast = Toast.makeText(OptionPage1.this,
    "```", Toast.LENGTH_SHORT);
    toast.show();
    } else {
    startActivity(new Intent(OptionPage1.this,
    OptionPage2.class)); }
    } });
    // } else {
    // startActivity(new Intent(OptionPage1.this, InternetSteward.class));
    // }
    } // 将内容保存进去
    @Override
    protected void onStop() {
    super.onStop();
    SharedPreferences settings = getSharedPreferences(SETTING_INFOS, 0); // 首先获取一个SharedPreferences对象
    settings.edit().putString(CONTENT, edittext.getText().toString())
    .commit();然后是Activity02:
    public class OptionPage2 extends Activity {

    OptionPage1 op1; 
    TextView textview;
    Button button1;
    Button button2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.secondpage);
    textview = (TextView) findViewById(R.id.t);
    button1 = (Button)findViewById(R.id.tt1);
    button2 = (Button)findViewById(R.id.tt2);
    textview.setText("······");

    button1.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v) {
    // TODO Auto-generated method stub
    }

    });
    button2.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v) {
    // TODO Auto-generated method stub
    startActivity(new Intent(OptionPage2.this,InternetSteward.class));
    }
    });
    }
    }
    我的问题是 自己做个小东西这是两个设置的Activity 设置完成后进入主页面 以后再进的时候直接跳过这两个Activity。  现在的问题是怎样设置 Activity02的button1的监听,点击后要返回Activity01。
    要是用Intent肯定不行,因为会重新调用01的onCreate方法,而且我在01中有个判断就是如果edittext不为空就直接跳过01,02这两个设置页面。
      

  4.   

    启动Activity 01,Activity01:onCreate-->onStart-->onResume监听,进入Activity02, Activity02:onCreate-->onStart-->onResume;Activity01:onStop监听,从Activity02,返回Activity01, Activity02:onPause; Activity01:onRestart()-->
    onStart-->onResume; Activity02:onStop-->onDestroy.我也搞郁闷了 。到第三个界面,老是异常。你帮看看。public class Activity01 extends Activity 
    {
    TextView textview;
    Button button1;
    Button button2;
    EditText edittext;
    public static final String SETTING_INFOS = "SETTING_Infos";
    public static final String CONTENT = "CONTENT";
    private final static int REQUEST_CODE1=1;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.firstpage);

    textview = (TextView) findViewById(R.id.t0);
    button1 = (Button) findViewById(R.id.t1);
    button2 = (Button) findViewById(R.id.t2);
    edittext = (EditText) findViewById(R.id.et);

    // 获取一个SharedPreferences对象
    SharedPreferences settings = getSharedPreferences(SETTING_INFOS, 0);
    // 取出保存的CONTENT
    String content = settings.getString(CONTENT, "");
    edittext.setText(content);

    textview.setText("``````");

    //if (edittext.getText().toString().trim().equals("")) {

    button1.setOnClickListener(new Button.OnClickListener()
    {
    public void onClick(View v) {
    // TODO Auto-generated method stub
    // LayoutInflater factory =
    // LayoutInflater.from(OptionPage1.this);
    // final View DialogView =
    // factory.inflate(R.layout.liulianglist,null);
    AlertDialog dlg = new AlertDialog.Builder(Activity01.this)
    .setTitle("请选择您的包月套餐")
    .setItems(new String[]{ "```", "```","```","```", "```","```", },
        new DialogInterface.OnClickListener()
    {
    public void onClick(DialogInterface dialog,int which)
    {
    switch (which)
    {
    case 0:
    edittext.setText("10");
    break;
    case 1:
    edittext.setText("20");
    break;
    case 2:
    edittext.setText("30");
    break;
    case 3:
    edittext.setText("50");
    break;
    case 4:
    edittext.setText("100");
    break;
    case 5:
    edittext.setText("300");
    break;
    }
    dialog.dismiss();
    }
    }).create();

    dlg.show();
    }
    });

    button2.setOnClickListener(new Button.OnClickListener()
    {

    public void onClick(View v) 
    {
    // TODO Auto-generated method stub
    if (edittext.getText().toString().trim().equals("")) 
    {
    Toast toast = Toast.makeText(Activity01.this,
    "```", Toast.LENGTH_SHORT);
    toast.show();

    else 
    {
    Intent intent=new Intent();
    intent.setClass(Activity01.this, Activity02.class);
    intent.putExtra("str", "hello");
    startActivityForResult(intent, REQUEST_CODE1);
    }
    }

    });
    }

    // 将内容保存进去
    @Override
    protected void onPause()
    {
    super.onPause();
    SharedPreferences settings = getSharedPreferences(SETTING_INFOS, 0); // 首先获取一个SharedPreferences对象
    settings.edit().putString(CONTENT, edittext.getText().toString())
    .commit();
    } @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode==REQUEST_CODE1)
    {
    if (resultCode==Activity02.RESULT_CODE2)
    {
    Bundle bundle =data.getExtras();
    String string=bundle.getString("BACK");
    Toast.makeText(Activity01.this, string, Toast.LENGTH_LONG).show();
    }
    }
    }}public class Activity02 extends Activity 
    {
    Activity01 op1;  
    TextView textview;
    Button button1;
    Button button2;
    final static int RESULT_CODE2=1;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.secondpage);

    textview = (TextView) findViewById(R.id.t);
    button1 = (Button)findViewById(R.id.tt1);
    button2 = (Button)findViewById(R.id.tt2);
    textview.setText("······"); button1.setOnClickListener(new Button.OnClickListener()
    {
    public void onClick(View v) 
    {
    Intent intent =new Intent();
    intent.putExtra("BACK", "BACK DATA");
    setResult(RESULT_CODE2, intent);
    Activity02.this.finish();
    } });

    button2.setOnClickListener(new Button.OnClickListener()
    {
    public void onClick(View v) 
    {
    Intent intent =new Intent();
    intent.setClass(Activity02.this,InternetSteward.class);
    startActivity(intent);
    Activity02.this.finish();
    }
    });
    }
    }public class InternetSteward extends Activity
    {
    private WebView m_WebView=null;

        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            m_WebView=(WebView)findViewById(R.id.WebView01);
            m_WebView.getSettings().setJavaScriptEnabled(true);
            m_WebView.loadUrl("http://www.baidu.com");
            
            WebSettings m_WebSettings=m_WebView.getSettings();
            m_WebSettings.setDefaultFontSize(20);
            m_WebSettings.setDefaultTextEncodingName(WIFI_SERVICE);
            m_WebSettings.setBlockNetworkImage(true);
        }
    }回头,告诉我。我也不知道这个对不对。我还在Activity02的Button2强加了,finish();
      

  5.   

    后来,看到个  方法用来保存Activity状态   :saveInstanceState()它是在onPause()之前就保存  了。  如果用onPause(),或者onStop(),难免,系统会自动释放。难以确保。好了,这个问题,我也和你学习了许多。  感谢。