2011-03-09 130 views
0

嘿家伙,我正在做一个Android应用程序,我想显示一个关于法律协议的对话框,每次应用程序启动时,我有一个公共方法showalert(<>);通过与alertbuilder建立对话来显示alertdialog。我在主要活动的onCreate()方法上添加了对showalert()方法的调用以显示它,但每当用户旋转屏幕时,他都会每次获取对话框。当手机旋转时,该活动会自动重新启动。我尝试在我的清单中添加android:configChanges =“keyboardHidden | orientation”,但对这种情况没有帮助。我也可以知道如何在清单文件上注册一个新的应用程序类。我正在尝试创建一个应用程序类并将代码显示在新类的oncreate方法上的对话框中。但是当应用程序启动时,我无法加载该类。Android活动重启

我也检查了Activity restart on rotation Android但我似乎没有得到一个东西。我几乎是Android编程的新手,有人能为我简化吗?

任何帮助,将不胜感激。 :)

回答

1

你也许可以看一下onRetainNonConfigurationInstance()活动方法,该方法在屏幕方向更改销毁并重新创建活动之前调用。

它可以让你保持一个对象,它可以例如包含测试变量要知道,如果你的合法的事情已经显示或不..例如:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    final String test = (String) getLastNonConfigurationInstance(); 
    if (!("textAlreadyShown").equals(test)) { 
     //here : show your dialog 
    } 
} 

@Override 
public String onRetainNonConfigurationInstance() { 
    return "textAlreadyShown"; 
} 
+0

好吧我部分得到了你所说的,就像你能给我一个实例代码,它实际上在屏幕更改之前保存了一个变量布尔值,以及如何在变更后获取该变量。预先感谢我的身边:) – KSubedi 2011-03-09 02:43:48

+0

真棒!非常感谢!正是我一直在寻找的日子! :) – KSubedi 2011-03-09 02:46:19

+0

不客气:) – darma 2011-03-09 02:48:17

0

将主要活动设置为仅显示法律声明的活动,接受/清除时显示第二个活动(当前是主要活动)?

+0

感谢您的答复,我就给你一个现在就试试。 :) – KSubedi 2011-03-09 02:30:00

+0

谢谢,但我发现了一个更简单的解决方案,这种方法需要更改我的班级文件。我计划在我的下一个应用程序中使用它。 :D – KSubedi 2011-03-09 03:07:06