DialogFragment कंटेनर का उपयोग पर एंड्रॉयड के हाल के जोर के साथ आप प्रत्येक
पर खारिज कॉल करने के लिए के बाद से संवाद एक टुकड़ा कंटेनर आप केवल अपने जीवन चक्र उपयोग कर सकते हैं होगा की जरूरत नहीं होंगे। इस DialogFragment पर विचार करें:
public class FragDialog extends DialogFragment{
public ProgressDialog _dialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
//this.dismiss(); <-- The dialogs may be dismissed here
}
}
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
_dialog = new ProgressDialog(getActivity());
return _dialog;
}
@Override
public void onPause() {
super.onPause();
// <--------- You may overload onPause
}
}
कौन सा आप सामान्य रूप से एक fragmentmanager का उपयोग कर इसे इस तरह बुला अपनी गतिविधि में दिखाई देगा:
FragmentManager fm = getSupportFragmentManager();
FragDialog fragDialog = new FragDialog();
fragDialog.show(fm, "my_tag");
ध्यान दें कि आप वास्तव में बदल सकता है क्या DialogFragment onPause में करता है। जब आपकी गतिविधि चालू होती है, तो इस पर रोक भी कहा जाएगा।
इस.dismiss() का उपयोग कर रोकें() में संवाद को खारिज करना काम नहीं करेगा क्योंकि गतिविधि फिर से शुरू होने के बाद भी यह संवाद फिर से शुरू हो जाएगी। (मुझे लगता है कि ऐसा इसलिए है क्योंकि savestate ऑन पॉज़ से पहले संग्रहीत किया जाता है)।
लेकिन अगर आप कोड में दिखाए गए सहेजे गए इन्स्टेंसस्टेट (एक फिर से शुरू) का पता लगाते हैं तो आप सुरक्षित रूप से संवाद को खारिज कर सकते हैं।
मैं नवीनीकृत किया है जवाब – quinestor