dismiss和remove_为什么不会在onDestroy或onPause中解雇Dialog,removeDialog或dialog.dismiss工作?...
我不知道如何管理对话框而不使用configChanges来指定要手动处理方向更改。 因此,可以说,你有这样的AndroidManifest:为什么不会在onDestroy或onPause中解雇Dialog,removeDialog或dialog.dismiss工作?
package="com.example.testandroid"
android:versionCode="1"
android:versionName="1.0" >
android:minSdkVersion="8"
android:targetSdkVersion="15" />
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:name=".MainActivity"
android:label="@string/title_activity_main" >
借此MainActivity.java:
package com.example.testandroid;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
private final static String TAG = "MainActivity";
Dialog mDialog = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate");
setContentView(R.layout.activity_main);
}
public void doShowDialog(View b) {
Log.d(TAG, "doShowDialog");
showDialog(1);
}
private void tryDismiss() {
Log.d(TAG, "tryDismiss");
try {
dismissDialog(1);
removeDialog(1);
mDialog.dismiss();
} catch(IllegalArgumentException ex) {
Log.e(TAG, ex.getMessage());
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
protected void onPause() {
tryDismiss();
super.onPause();
Log.d(TAG, "onPause");
}
@Override
protected Dialog onCreateDialog(int dialog) {
Builder b = new AlertDialog.Builder(this);
b.setTitle("Hello").setMessage("Waiting..");
mDialog = b.create();
return mDialog;
}
}
和这个布局(main.xml中)
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Open Dialog"
android:onClick="doShowDialog"
/>
它似乎没有不重要的是,如果您从onDestroy或onPause调用,对话框将在方向切换后显示备份。但为什么?我告诉它走开。如果调用removeDialog/dismissDialog,则在方向更改之前调用它时不执行任何操作。我无法弄清楚为什么会这样。摆脱的唯一途径这是我所知道的是处理方向通过
android:configChanges="keyboardHidden|orientation"
我知道工作的新方法是使用FragmentDialog东西,我还没有升级到尚未改变自己和我不准备重写我的整个应用程序。看起来很奇怪,这不起作用。
这只是我在我的应用程序中的用户可以从远程服务器请求某些数据(以更新微调器的数据)的实际问题的示例,并且如果它们切换方向,则加载对话框将永远不会消失,除了使用android:configChanges选项处理方向更改之外,似乎还没有解决此问题的方法。我可以做,但我必须这样做似乎很荒谬。
- 更新 - 删除了按钮以关闭对话框,因为它没有必要,并且由于对话框位于顶部,因此无法单击它。
要重现刚刚启动的应用程序,请单击打开对话框的按钮,然后旋转手机。
+0
请清楚地了解你的重现步骤。你加载它的肖像。点击按钮显示对话框,然后点击停止对话框,然后切换到横向并显示出来? –
2012-07-06 20:03:16
+0
没有看到您将参数分配给doDismiss(l)的位置?你是如何初始化的?这个价值是什么? –
2012-07-06 20:05:13
+0
您是否设置了断点以确定这些方法正在被调用?检查参数是否真的与您创建的对话框匹配。 –
2012-07-06 20:06:42
dismiss和remove_为什么不会在onDestroy或onPause中解雇Dialog,removeDialog或dialog.dismiss工作?...相关推荐
- android ondestroy service,onDestroy在android中运行时,MainActivity泄露了ServiceConnection。如何防止这个错误?...
我正在制作一个android-wear应用程序,主要功能在 ConnectionService 类,它基本上处理与websocket的通信.我的问题是,如果我用android-wear设备上的按钮退出 ...
- android中内存泄露,Android中的内存泄露
编辑推荐: 本文来自于csdn,本文主要从java的内存模型讲起,最终举出几个内存泄露的例子和解决方案. java运行时内存模型 具体信息:http://gityuan.com/2016/01/09/ ...
- Android 解决OutOfMemory,从避免内存溢出开始
前言:一个刚上班和三年工作经验的安卓程序猿,做同一个项目.如果只从表面上看,并没有什么区别.但从项目的性能.稳定性.扩展性等方面来观察的话,差别不要太大.言归正传,今天我们来说一下安卓开发中很常见的问 ...
- Android 灭屏和亮屏的监听
采用动态注册广播的方式对灭屏和亮屏进行监听 1.创建receiver class ScreenStatusReceiver extends BroadcastReceiver { String SC ...
- Android 面试题大全 android中级----进阶------ 知识点
// Android 的中等进阶知识点理解 1 内存泄漏是什么 ?? 2 Android oom 内存溢出 ?? 3 Retrofit详解 ?? 4 Rxjava详解 ?? 5 Android 性能优 ...
- Android 如何正确的重写 onDestroy() 方法
不知道大家在写 Android 的时候有没有遇到过这样的一个疑惑:当你在重写 onDestry() 的方法时,有没有犹豫过,我们自己的方法,是应该放在 super.onDestroy() 方法的上面呢 ...
- Android --- Dialog 中 Dismiss 和 Cancel 的解释
Android Dialog有两个很相似的方法: Dialog.cancel()和Dialog.dismiss(); 这两个方法区别在于: 1.Dialog.cancel()方法中会调用Dialog. ...
- dismiss android,[转]Android对话框中dismiss和cancel、hide的区别
dismiss和cancel在我们看来两者效果都是一样的,其实看下源码就知道cancel肯定会去调dismiss的,不过如果我们调用的cancel的话就可以监听DialogInterface.OnCa ...
- onCreate onStart onResume onStop onPause onDestroy onRestart onWindowFocusChanged
一.函数调用情形 1.启动游戏 onCreate onStart onResume onWindowFocusChanged 2.锁屏(已启动游戏) onPause onStop onWindowFo ...
- Activity onDestroy方法未能及时执行原因
网上出现的情况也不少,大致看了下主要有以下几类: AndroidManifest 针对某个activity 设置的theme为 @android:style/Theme.NoTitleBar 在目前项 ...
最新文章
- mysql主从复制及失败切换
- 配置连接池druid
- python学习笔记(05)
- awk和cut分割字符区别
- 深度解读 OpenYurt:从边缘自治看 YurtHub 的扩展能力
- SCCM 2012R2 部署教程之二——部署数据库
- Android之自定义带圆角的水纹波效果
- 如何查询日志文件中的所有ip,正则表达式
- 【翻译】Ext JS 6早期访问版本发布
- Java 平衡二叉树和AVL
- 管理感悟:学会推论及验证
- linux修改sybase数据库密码,巧用Sybase数据库的超级用户密码
- java docx4j 使用教程_使用Docx4j操作PPT指南系列(二)
- vue循环阿里巴巴矢量图标
- 简单管理Android手机程序的小程序
- SpringBoot+Vue 微信支付API V3
- 视觉识别真是火得发烫,依图科技宣布完成2亿美元融资
- 十首中国现代诗,很美!
- 软件质量管理-6-质量管理
- 前端实现AWS s3亚马逊云储存上传资源
热门文章
- jzoj6152. 【GDOI2019Day2模拟2019.4.29】Endless (倍增维护并查集,平方串)
- FreeRTOS学习笔记(11)——CPU使用率统计
- [IDE]webstorm安装并配置sass踩坑(windwos)
- 权变理论计算机管理理论,权变理论是什么意思?权变管理理论的介绍与应用
- qchart 怎么点击一下 出一条线_陈奕迅唱歌技巧,学好这几点,你也能唱出更具有穿透力和磁性的声音...
- 2016年Godaddy最新域名转出教程
- lintcode1485. 圣杯咒语
- DC-DC升压IC测试及EN脚讲解
- minio-operator部署minio服务,并用Java客户端访问minio
- alert(1) (haozi.me)靶场练习