package com.test; import java.io.FileWriter; import java.io.IOException; import android.app.Activity; import android.app.AlertDialog; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.PowerManager; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.TextView; public class MainActivity extends Activity implements OnClickListener { Button stopBut; Button clearBut; TextView textView; CheckBox mCheckBox1, mCheckBox2; int bootNumber; boolean isCBChecked; boolean isReboot = false; Context mContext; private static final String BOOT_NUMBER = "mBootNumber"; private static final int SHUT_DOWN = 0; private static final int PLAY_VIDEO = 1; private static final String TAG = "MainActivity"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mContext = this; stopBut = (Button) findViewById(R.id.stopBut); clearBut = (Button) findViewById(R.id.clearBut); textView = (TextView) findViewById(R.id.mTextView); mCheckBox1 = (CheckBox) findViewById(R.id.CheckBox1); mCheckBox2 = (CheckBox) findViewById(R.id.CheckBox2); stopBut.setOnClickListener(this); clearBut.setOnClickListener(this); onReboot(); // 启动保存log日志apk Intent intent = new Intent(); intent.setComponent(new ComponentName("com.logcat", "com.logcat.MainActivity")); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); //Intent mIntent = new Intent(); //mIntent = getPackageManager().getLaunchIntentForPackage(packageName); //startActivity(mIntent); SharedPreferences pres = getSharedPreferences(BOOT_NUMBER,Context.MODE_WORLD_READABLE); if (pres != null) { bootNumber = pres.getInt("boot_Number", 0); isCBChecked = pres.getBoolean("CheckBox_", true); } Log.i(TAG, "---------onCreate number:" + bootNumber); textView.setText("开机次数:" + bootNumber); bootNumber++; if (isCBChecked) { mCheckBox1.setChecked(true); mCheckBox2.setChecked(false); mHandler.sendEmptyMessageDelayed(SHUT_DOWN, 8000); Log.i(TAG, "---------isCBChecked:mCheckBox1" ); } else { mCheckBox1.setChecked(false); mCheckBox2.setChecked(true); mHandler.sendEmptyMessageDelayed(PLAY_VIDEO, 4000); Log.i(TAG, "---------isCBChecked:mCheckBox2" ); } mCheckBox1 .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { SharedPreferences pres = getSharedPreferences( BOOT_NUMBER, Context.MODE_WORLD_READABLE); if (isChecked) { isCBChecked = true; mCheckBox1.setChecked(true); mCheckBox2.setChecked(false); if (pres != null) { SharedPreferences.Editor ed = pres.edit(); ed.putBoolean("CheckBox_", true); ed.commit(); } } else { isCBChecked = false; SharedPreferences.Editor ed = pres.edit(); ed.putBoolean("CheckBox_", false); ed.commit(); } } }); mCheckBox2 .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { SharedPreferences pres = getSharedPreferences( BOOT_NUMBER, Context.MODE_WORLD_READABLE); if (isChecked) { isCBChecked = false; mCheckBox2.setChecked(true); mCheckBox1.setChecked(false); if (pres != null) { SharedPreferences.Editor ed = pres.edit(); ed.putBoolean("CheckBox_", false); ed.commit(); } } else { isCBChecked = true; SharedPreferences.Editor ed = pres.edit(); ed.putBoolean("CheckBox_", true); ed.commit(); } } }); } private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case SHUT_DOWN: onShutdown(); break; case PLAY_VIDEO: onPlayVideo(); break; default: break; } } }; @Override public void onClick(View view) { if (view == stopBut) { Log.i(TAG, " stop"); new AlertDialog.Builder(this).setMessage("停止重启设备").setPositiveButton("OK", null).show(); stop(); mHandler.removeMessages(SHUT_DOWN); } else if (view == clearBut) { Log.i(TAG, " clear"); SharedPreferences pres = getSharedPreferences(BOOT_NUMBER,Context.MODE_WORLD_READABLE); if (pres != null) { SharedPreferences.Editor ed = pres.edit(); ed.putInt("boot_Number", 0); ed.commit(); } bootNumber = 0; textView.setText("开机次数:" + 0); } } public void onShutdown() { SharedPreferences pres = getSharedPreferences(BOOT_NUMBER,Context.MODE_WORLD_READABLE); if (pres != null) { SharedPreferences.Editor ed = pres.edit(); ed.putInt("boot_Number", bootNumber); ed.commit(); } //关机 PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); pm.reboot("recovery"); } private void onPlayVideo(){ mHandler.sendEmptyMessageDelayed(SHUT_DOWN, 90000); Intent playVideo = new Intent(); playVideo.setClass(MainActivity.this, VideoActicity.class); startActivity(playVideo); } private void stop() { try { FileWriter fw = new FileWriter("/sys/misc/poweron_status"); fw.write("0x5a"); fw.close(); Log.i(TAG, "---------stop"); } catch (IOException e) { e.printStackTrace(); new AlertDialog.Builder(this).setMessage(e.getMessage()) .setPositiveButton("OK", null).show(); } } //修改文件 private void onReboot() { try { FileWriter fw = new FileWriter("/sys/misc/poweron_status"); fw.write("0x87"); fw.close(); Log.i(TAG, "---------onReboot"); } catch (IOException e) { e.printStackTrace(); new AlertDialog.Builder(this).setMessage(e.getMessage()) .setPositiveButton("OK", null).show(); } } @Override protected void onDestroy() { super.onDestroy(); mHandler.removeMessages(SHUT_DOWN); mHandler.removeMessages(PLAY_VIDEO); } }
相关推荐
这个项目提供了一个适合初学者学习的例子,其中包含了SharedPreferences用于保存用户数据以及SQL数据库的操作。以下将详细讲解这两个核心知识点。 首先,我们来讨论SharedPreferences。在Android中,...
在"SharedPreferences保存对象.zip"这个文件中,很可能是通过示例讲解了如何将自定义对象存储到SharedPreferences中,因为默认SharedPreferences并不直接支持对象的序列化和反序列化。 在Android中,若想将自定义...
需要注意的是,使用SharedPreferences保存对象并不适用于大量数据或频繁的读写操作,因为它并不是设计用来处理复杂数据结构的。在这些场景下,SQLite数据库或ContentProvider可能更为合适。此外,序列化和反序列化...
在标题“使用SharedPreferences保存一些数据”中,我们主要探讨的是如何通过SharedPreferences来存储和检索应用程序中的数据。 SharedPreferences的工作原理是将数据以XML格式保存到设备的文件系统中,通常位于 `/...
在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于保存应用程序的配置信息或者用户的一些简单设置。这些数据通常是简单的键值对,如布尔值、整型、浮点型、字符串以及字符...
保存数据的更改需要调用`commit()`或`apply()`方法。`commit()`是同步操作,会立即返回结果;而`apply()`是异步操作,不会等待操作完成就返回,但保证所有数据最终会被保存。 ```java editor.commit(); // 或者 ...
`SharedPreferences`是Android提供的一种轻量级的数据存储方式,主要用于保存应用程序的简单配置数据,如布尔值、整型、浮点型、字符串等。这篇博客将深入探讨如何使用`SharedPreferences`进行数据存储,以及其背后...
SharedPreferences 封装,保存基本数据类型,保存对象
在本案例中,“SharedPreferences保存输入记录”指的是应用程序利用SharedPreferences来存储用户的输入历史,以便在后续使用时能够快速恢复或参考这些记录。 在Android开发中,SharedPreferences通常用于保存那些不...
本资源将通过一个具体的例子来介绍如何使用SharedPreferences进行数据保存。 SharedPreferences通常用于存储应用的偏好设置,比如用户是否开启通知、界面布局选择等。它的优点在于简单易用,读写速度快,而且数据...
在Android开发中,`SharedPreferences` 是一个非常常用的数据存储机制,它主要用于保存应用中的轻量级数据,如用户的偏好设置、简单的配置信息等。`SharedPreferences` 提供了一种键值对(key-value pairs)的存储...
数据持久化就是指将那些内存中的瞬时数据保存到持久化设备中(如手机文件、数据库等),当关机,停电后,数据不丢失。 Android 系统中主要提供了三种方式用于实现数据持久化功能,分别是: 1、文件存储 2、...
`SharedPreferences`是Android提供的一种轻量级的数据存储方式,用于保存用户的偏好设置或简单的数据。在这个应用中,它被用来记录用户是否已经看过引导界面,这样当用户再次打开应用时,可以判断是否需要再次显示...
- 每次修改SharedPreferences后,都需要提交,否则数据不会保存。 - 如果多个线程同时编辑SharedPreferences,可能导致数据不一致,需做好同步控制。 总之,Android的SharedPreferences是简单易用的本地持久化...
2. 创建SharedPreferences.Editor对象,用于编辑和保存数据: ```java SharedPreferences.Editor editor = sharedPreferences.edit(); ``` 3. 使用Editor对象的putString()方法保存用户名和密码: ```java editor...
**二、使用SharedPreferences保存数据** 1. **获取SharedPreferences对象**:通常通过`getSharedPreferences()`方法从`Context`对象中获取,需要传入一个文件名(用于区分不同的SharedPreferences文件)和操作模式,...
在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储一些简单的配置信息,如用户偏好设置、应用程序的状态等。它是一个键值对的存储系统,支持基本数据类型,如布尔型、...
SharedPreferences是Android提供的一种轻量级的数据存储方式,用于保存应用程序的简单配置信息,如用户设置、偏好设置等。它采用键值对的形式存储,支持基本数据类型如布尔型、整型、浮点型、字符串等。数据持久化在...
在实验九中,你可能需要创建一个简单的Android应用,包含几个输入框让用户输入数据,然后把这些数据保存到SharedPreferences中。之后,应用启动时可以从SharedPreferences读取这些数据,并显示在界面上。这是一个很...
在Android开发中,SharedPreferences是应用数据存储的一种简单方式,它主要用于保存轻量级的数据,如用户的偏好设置、登录状态等。在这个场景下,我们需要利用SharedPreferences来实现保存多个用户名和密码的功能,...