gpt4 book ai didi

android - 当应用程序启动时,使 Activity 仅出现一次

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:21:47 24 4
gpt4 key购买 nike

我有以下类(class),SplashActivity.java:

public class SplashScreen extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

setContentView(R.layout.splash);
Thread timer = new Thread(){
public void run(){
try{
sleep(5000);
}catch(InterruptedException e)
{
e.printStackTrace();
}
finally{
Intent tutorial = new Intent(SplashScreen.this, TutorialOne.class);
startActivity(tutorial);
}

}
};
timer.start();
}
}

我希望这个 Activity 只加载一次,当应用程序第一次安装在移动设备上时。作为android的新手,我对此知之甚少。我读到要使用 SharedPreferences 的地方,但不理解实现。关于这个 Activity 的事情是,当第一次使用时, Activity 必须充当 Launcher,这让我很困惑。因为在 list 文件中我声明了另一个 Activity ,在我的例子中是 MainPage.java。那么我该如何实现这个逻辑呢??我是调用 MainPage 中的 SplashActivity 还是必须做其他事情?请帮助某人?

如果可能的话,有人可以写下实现这个逻辑的代码吗?

最佳答案

将此代码添加到您的 onCreate 方法

    SharedPreferences pref = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE);
if(pref.getBoolean("activity_executed", false)){
Intent intent = new Intent(this, TutorialOne.class);
startActivity(intent);
finish();
} else {
Editor ed = pref.edit();
ed.putBoolean("activity_executed", true);
ed.commit();
}

SharedPreferences 将在您每次执行应用程序时保留,除非您从 Android 上的“设置”中清除数据。第一次将从保存在此类首选项 (ActivityPREF) 上的 bool 值 (activity_executed) 中获取值。

如果找不到任何值,它将返回 false,因此我们必须编辑首选项并将值设置为 true。下一次执行将启动 Activity TutorialOne

finish() 从堆栈历史记录中删除当前 Activity ,因此无法使用 TutorialOne 中的返回按钮返回。

关于您的 list ,您可以使用

设置此 Activity
        <intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

每次应用程序执行时都会启动此 Activity ,但由于 "activity_executed" 上的 true 设置将使用 startActivity 启动新 Activity 。

关于android - 当应用程序启动时,使 Activity 仅出现一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16419627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com