1

如何检查我的应用程序中是否调用了 Activity?

我的问题是,如果用户来自另一个应用程序并且我仍在后台,我只想更新数据。

谢谢!

4

2 回答 2

1

一个可能的想法是反转该过程,即确定活动是否由您的应用程序启动。

假设你有一个活动 A,你想在 onResume() 中找出你是否从另一个活动回来。您应该能够使用 startActivityWithResult() 启动从 A 传出的所有其他活动,并在 onActivityResult() 中检查结果。由于 onActivityResult() 在 onResume() 之前调用,您可以在 onResume() 中设置要检查的布尔字段。

所以,代码是:

private static final int RANDOM_ACTION_CODE= 42;

private Button fButton;

private boolean returning= false;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    fButton= (Button) findViewById(R.id.button1);
    fButton.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    Intent i= new Intent(this, SecondActivity.class);
    startActivityForResult(i, RANDOM_ACTION_CODE);
}

@Override
protected void onResume() {
    super.onResume();
    Toast.makeText(this, "returning = " + returning, Toast.LENGTH_LONG).show();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RANDOM_ACTION_CODE)
        returning= true;
    else
        returning= false;
}
于 2011-08-10T17:28:00.980 回答
0

你可以使用 onRestart 事件吗?

于 2011-08-10T16:50:11.830 回答