活动没有回来

时间:2014-01-02 08:54:57

标签: android

我有一个方法。通过使用此方法,我将启动一个ListActivity。这是我的源代码。

private void onCollectionClicked() {
        Intent i = new Intent(getBaseContext(), FileDialog.class);
        i.putExtra(FileDialog.START_PATH, last_folder);
        startActivityForResult(i, PICK_FILE_CODE);
    } 

在启动的ListActivity中,我有取消按钮。如果我单击此按钮,它应该返回到MainActivity。这是我的源代码

cancelButton.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                setResult(RESULT_CANCELED);
                finish();
            }

        });

我的问题是ListActivity被杀了,但它没有回到MainActivity。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

以下示例代码演示了如何使用startActivityForResult()方法触发和意图。

public void onClick(View view) {
  Intent i = new Intent(this, ActivityTwo.class);
  i.putExtra("Value1", "This value one for ActivityTwo ");
  i.putExtra("Value2", "This value two ActivityTwo");
  // Set the request code to any code you like, you can identify the
  // callback via this code
  startActivityForResult(i, REQUEST_CODE);
} 

如果使用startActivityForResult()方法,则启动的活动称为子活动。

如果子活动完成,它可以通过Intent将数据发送回其调用者。这是在finish()方法

中完成的
@Override
public void finish() {
  // Prepare data intent 
  Intent data = new Intent();
  data.putExtra("returnKey1", "Swinging on a star. ");
  data.putExtra("returnKey2", "You could be better then you are. ");
  // Activity finished ok, return the data
  setResult(RESULT_OK, data);
  super.finish();
}

子活动完成后,将调用调用活动中的onActivityResult()方法。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
    if (data.hasExtra("returnKey1")) {
      Toast.makeText(this, data.getExtras().getString("returnKey1"),
        Toast.LENGTH_SHORT).show();
    }
  }
} 

答案 1 :(得分:0)

抱歉..这个问题不对。实际上我在不知不觉中杀了我的MainActivity。这是我的onPause代码。

@Override
    public void onPause() {
        super.onPause();

        //safe close..
        android.os.Process.killProcess(android.os.Process.myPid());
    }

谢谢@Pankaj kumar。由于你的评论,我已经检查了我的onPause方法代码。