Проверьте, была ли активность вызвана в моем приложении - PullRequest
1 голос
/ 10 августа 2011

Как я могу проверить, была ли вызвана активность в моем приложении?

Моя проблема в том, что я хочу обновлять данные только в том случае, если пользователь пришел из другого приложения, а мое приложение все еще в фоновом режиме.

Спасибо!

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Возможная идея - инвертировать процесс, то есть выяснить, было ли действие запущено вашим приложением.

Допустим, у вас есть действие A, в котором вы хотите узнать в onResume (), вернулись ли вы из другого вашего действия. Вы должны иметь возможность запускать все другие действия, исходящие из A, с помощью startActivityWithResult () и регистрировать 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;
}
0 голосов
/ 10 августа 2011

Можно ли использовать событие onRestart?

...