⑥【Kotlin】SharedPreferencesにログイン情報を保存し、次回アプリ起動時に自動ログイン
SharedPreferenceとは、Androidアプリで簡単な永続データを保存するための仕組みです
(※ Androidアプリは通常、起動するたびにデータが初期化されます)
SharedPreferenceは、名前と値のペアのセットを格納します
PrefsManager.kt(MainActivityと同階層に配置)
import android.content.Context
import android.content.SharedPreferences
class PrefsManager(context: Context) {
private val prefs: SharedPreferences = context.getSharedPreferences("user_prefs", Context.MODE_PRIVATE)
fun saveUserId(userId: String) {
prefs.edit().putString("user_id", userId).apply()
}
fun getUserId(): String? {
return prefs.getString("user_id", null)
}
fun clearUserId() {
prefs.edit().remove("user_id").apply()
}
}
※ RegisterActivity.ktやLoginActivity.ktで
private lateinit var prefs: PrefsManager のようにしてインスタンスを作成し、
データを保存・取得できます
MainActivity.kt
class MainActivity : AppCompatActivity() {
private lateinit var prefs: PrefsManager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
prefs = PrefsManager(this)
val userId = prefs.getUserId()
if (userId != null) {
startActivity(Intent(this, HomeActivity::class.java))
finish()
} else {
startActivity(Intent(this, LoginActivity::class.java))
finish()
}
}
}
ログアウト
fun logout(context: Context) {
val prefs = PrefsManager(context)
prefs.clearUserId()
}
AndroidManifest.xml
PrefsManager.ktはRegisterActivity.ktとは異なり、AndroidManifestに追加する必要がありません
なぜならActivityではないからです
BACK