这可能是一个广泛的问题,但我会尽力解释。如果出现任何问题,我也会给出代码片段 - 请告诉我。
我不能重复这个问题,但它表面如下:
一个。有时我会登录 - 我点击退出并看到我的活动刷新。这可能会发生很多次。我期望在点击退出时关闭活动。
湾有时我正在使用我的活动(已经登录)并从图标开始。我点击后退,它不会进入“桌面”并再次进入活动。这可能发生1-3次。我希望这是回击桌面时回到桌面的主要活动。
℃。我在Yahoo邮件应用程序上发现了类似的问题,所以我不确定这是我的Nexus S上的bug还是2.3.1问题?
我有: 1.主要活动 2.登录对话框,即自定义对话框。
这是我活动的代码:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//If not authorized yet then show sign in dialog
if (!PreferencesManager.getIsUserAuthenticated(getApplicationContext()))
{
showDialog(1);
}
Button signOutButton = (Button) findViewById(R.id.SignOutButton);
signOutButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
PreferencesManager.setIsUserAuthenticated(false, getApplicationContext());
**MainActivity.this.finish();**
}
});
}
@Override
protected void onDestroy()
{
super.onDestroy();
}
@Override
protected void onPause()
{
super.onPause();
}
protected Dialog onCreateDialog(int id)
{
LoginDialog dialog = new LoginDialog(this);
dialog.setOnDismissListener(new DialogInterface.OnDismissListener()
{
public void onDismiss(DialogInterface dialog)
{
if (!PreferencesManager.getIsUserAuthenticated(getApplicationContext()))
{
**MainActivity.this.finish();**
}
}
});
return dialog;
}
在对话框类中 - 如果Login成功,我会有常规内容和“this.dismiss”。
答案 0 :(得分:1)
我不确定这是关闭活动的正确方法,但您可以做的一件事是将您的清单中的launchMode更改为singleTop,以防止启动该活动的各种实例。 / p>
希望它有所帮助, JQCorreia
答案 1 :(得分:0)
您的活动以某种方式多次创建。如果它是桌面或应用程序抽屉的快捷方式,或者是在家中,或者其他一些快捷方式,这可以用于它的运行方式。
您可能希望在http://developer.android.com/guide/topics/manifest/activity-element.html
查看launchMode