对话未闭dialog.dismiss()导航backand来回设置屏幕时 [英] Dialog is not closed dialog.dismiss() when navigating backand forth to settings screen
本文介绍了对话未闭dialog.dismiss()导航backand来回设置屏幕时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
发生了什么::
- 对话框弹出
- 我点击确定 - >这使我设置屏幕
- 现在,我preSS后退按钮
- 当我回来的对话框按钮仍然存在
- 我再次单击确定
- 它再次让我设置屏幕
- 此重复,对话永远不会关闭
什么,我试图做的:
- 对话框弹出
- 我点击确定 - >这使我设置屏幕
- 现在,我preSS后退按钮
- 当我回来的对话框按钮应该已经关闭
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState); createInstances();
//设置notitle
requestWindowFeature(Window.FEATURE_NO_TITLE);
//设置全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
的setContentView(R.layout.main_splash_screen);
} @覆盖
保护无效调用onStart(){
super.onStart();
开(getResources()的getString(R.string.location_not_enabled));
} 公共无效开放(字符串custMsg){ AlertDialog.Builder警报=新AlertDialog.Builder(本);
alert.setMessage(custMsg);
alert.setCancelable(假);
alert.setPositiveButton(OK,新DialogInterface.OnClickListener(){
公共无效的onClick(DialogInterface对话,诠释whichButton){
locationValidationDone = TRUE;
dialog.dismiss();
startActivity(新意图(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
});
alert.show();
}
解决方案
在的OnStart使用对话框()
请在 OnCreate中使用()
,
当你回到你的actvity它被称为的OnStart()
和 onresume()
,
请阅读活动周期
的生命周期
@覆盖
保护无效调用onStart(){
super.onStart(); 如果(!start_dialog)
{
start_dialog = TRUE;
开(getResources()的getString(R.string.location_not_enabled));
}
}
What is happening::
- dialog is popped
- I click ok - > it leads me to settings screen
- Now i press back button
- When i come back dialog button is still there
- again i click ok
- again it leads me to settings screen
- this repeats, dialog is never closed
What i am trying to do:
- dialog is popped
- I click ok - > it leads me to settings screen
- Now i press back button
- When i come back dialog button should have closed
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
createInstances();
//set up notitle
requestWindowFeature(Window.FEATURE_NO_TITLE);
//set up full screen
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main_splash_screen);
}
@Override
protected void onStart() {
super.onStart();
open(getResources().getString(R.string.location_not_enabled));
}
public void open(String custMsg){
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setMessage(custMsg);
alert.setCancelable(false);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
locationValidationDone=true;
dialog.dismiss();
startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
});
alert.show();
}
解决方案
dialog is used inonstart()
please use in oncreate()
,
when your back to your actvity it's called the onstart()
and onresume()
,
please read the activity lifecycle
lifecycle
@Override
protected void onStart() {
super.onStart();
if(!start_dialog)
{
start_dialog = true;
open(getResources().getString(R.string.location_not_enabled));
}
}
这篇关于对话未闭dialog.dismiss()导航backand来回设置屏幕时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文