मैंने इसे उपयोग करने के बारे में कई पोस्टों के माध्यम से पढ़ा है, लेकिन कुछ गायब होना चाहिए क्योंकि यह मेरे लिए काम नहीं कर रहा है। मेरी गतिविधि A के प्रमोचन में घोषणापत्र = "singleTop" है। यह लॉन्चमोड = "सिंगलइनस्टेंस" के साथ गतिविधि बी शुरू करता है। एक्टिविटी बी एक ब्राउज़र खोलता है और प्राप्त करता है और वापस आ जाता है, यही कारण है कि यह सिंगलइंस्टेंस है। मैं बैक बटन को ओवरराइड करने की कोशिश कर रहा हूं ताकि उपयोगकर्ता को गतिविधि ए में वापस भेजा जाए, और फिर वापस गतिविधि बी को वापस करने के बजाय, गतिविधि को छोड़ने के लिए वापस दबाएं।
// activity B
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR
&& keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) onBackPressed();
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
startActivity(new Intent(this, UI.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK));
return;
}
ब्राउज़र से लौटने के बाद, स्टैक है ... ए, बी, ब्राउज़र, बी
मुझे उम्मीद है कि इस कोड को स्टैक को ... ए ... में बदल दिया जाएगा ताकि उपयोगकर्ता एक बार फिर से दबाने पर होम स्क्रीन पर वापस आ सके।
इसके बजाय यह स्टैक को बदलने लगता है ... ए, बी, ब्राउज़र, बी, ए ... जैसे कि उन झंडे नहीं हैं।
मैंने शुरुआत के बाद गतिविधि बी में कॉलिंग फिनिश () की कोशिश की, लेकिन फिर बैक बटन मुझे फिर से ब्राउज़र में वापस ले जाता है!
मैं क्या खो रहा हूँ? धन्यवाद!
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
बस यही करेंगे।