Я следовал документу для разработчиков Android, чтобы создать уведомление
Когда уведомление отображается на верхней панели, я нажимаю на это уведомление, и моя активность открывается. В onCreate() MyActivity я получаю намерение, установленное уведомлением, и показываю диалог.
public class MyActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//get extras from intent from notification component
Bundle extras = getIntent().getExtras();
if(extras != null){
showDialog();
}
}
private void showDialog(){
...
//There is a "open" button on the dialog, which opens browswer
openButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//I dismiss the dialog
dismissDialog();
//Then I open the browser
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(myUrl));
startActivity(browserIntent);
}
});
}
}
В показанном диалоговом окне есть кнопка «Открыть», при нажатии на которую открывается браузер. Здесь все работает нормально.
Если теперь нажать физическую кнопку «Назад», браузер исчезнет, MyActivity снова отобразится. однако onCreate()
вызывается снова (иногда), при этом Bundle extras = getIntent().getExtras();
снова получает то же самое намерение, и снова отображается диалоговое окно.
Как убедиться, что после открытия браузера диалогового окна при нажатии физической кнопки «Назад» диалоговое окно больше не отображается?
sometimes
? (используйте startActivityForResult, чтобы определить, что вы возвращаетесь из браузера) - person njzk2   schedule 05.02.2014