仅在应用程序中调用一次活动,并在应用程序在被杀后重新启动时再次显示该活动

时间:2013-04-17 17:36:27

标签: android android-activity sharedpreferences

我正在开发一个应用程序,我必须在应用程序生命周期中只显示一次活动。

我正在做的是MainActivity.java我正在呼叫Activity 1,所以当我搬进我的应用后,每当我回到MainActivity.java我{{1} }} 叫做。我只想展示一次。

当用户杀死应用并重新启动时,应再次显示Activity 1

以下是我在Activity 1中所做的事情:

MainActivity.java

我尝试使用以下代码,但只在第一次安装应用时运行一次。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    startActivity(new Intent(MainActivity.this,
                Activity1.class));

    }

如何修改上述代码,以满足我的要求。

任何形式的帮助都将受到赞赏。

4 个答案:

答案 0 :(得分:0)

更改

return !ranBefore

return ranBefore

在我看来,你总是返回相同的东西,而不是你初始化的变量。此外,您可以将代码直接在该方法中启动Activity。那你甚至不必担心return声明。更改SharedPreferences

中的值后,它将永远不再运行它

修改

您可以在SharedPreferences中将onCreate()值设置为false。如果你去另一个时没有完成Activity,如果它是你的主Activity那么你可能不想在退出应用程序之前完成它

答案 1 :(得分:0)

您应该在ranBefore

中将onDestroy设置为false
@Override
public void onDestroy() 
{
    SharedPreferences preferences = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putBoolean("RanBefore", false);
    editor.commit();
}

答案 2 :(得分:0)

我使用SharedPreferences解决了这个问题。我在Splash上​​做了什么我在SP中输入了一些值,在MainActivity上我检查过,如果值匹配显示活动,否则不要打开对话框。在keyCodeBack(),我已经清除SP,这有助于我满足我的要求。

答案 3 :(得分:0)

使用共享偏好设置..

要杀死活动,请在你的onClick()..

上使用class.finish()