У меня есть приложение SingleTask, которое может прослушать схему «тестирования».
Если я нажимаю кнопку (см. Код), я перезапускаю себя, и вызывается onNewIntent, давая мне намерение «тестирования» (теперь я могу отреагировать на это, нажав фрагмент)
Теперь. Если я нажму кнопку «Домой», а затем открою панель запуска приложения и снова войду в свое приложение, я бы хотел, чтобы вызывался onNewIntent, но с пустым намерением, поскольку я не хочу повторять свои действия (например, нажимать фрагменты). Но onNewIntent дает мне последнее намерение, которое использовалось для запуска моей деятельности, то есть намерение «тестирования».
Что я должен сделать, чтобы предотвратить нажатие того же фрагмента? Есть ли хороший способ без использования моих собственных идентификаторов.
public class OnNewIntentTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.e("", "on create");
((Button) findViewById(R.id.button1)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.e("", "Relaunch activity");
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("testing://hello")));
}
});
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Log.e("", "onNewIntent: " + (intent == null? "none" : (intent.getAction() + ":" + intent.getData())));
}
}