`

SharedPreferences保存数据

 
阅读更多
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);
	}
}

 

1
0
分享到:
评论

相关推荐

    简单的安卓登陆界面,SharedPreferences保存数据,SQL

    这个项目提供了一个适合初学者学习的例子,其中包含了SharedPreferences用于保存用户数据以及SQL数据库的操作。以下将详细讲解这两个核心知识点。 首先,我们来讨论SharedPreferences。在Android中,...

    SharedPreferences保存对象.zip

    在"SharedPreferences保存对象.zip"这个文件中,很可能是通过示例讲解了如何将自定义对象存储到SharedPreferences中,因为默认SharedPreferences并不直接支持对象的序列化和反序列化。 在Android中,若想将自定义...

    sharedpreferences 保存对象.zip

    需要注意的是,使用SharedPreferences保存对象并不适用于大量数据或频繁的读写操作,因为它并不是设计用来处理复杂数据结构的。在这些场景下,SQLite数据库或ContentProvider可能更为合适。此外,序列化和反序列化...

    使用SharedPreferences保存一些数据

    在标题“使用SharedPreferences保存一些数据”中,我们主要探讨的是如何通过SharedPreferences来存储和检索应用程序中的数据。 SharedPreferences的工作原理是将数据以XML格式保存到设备的文件系统中,通常位于 `/...

    SharedPreferences 保存用户设置

    在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于保存应用程序的配置信息或者用户的一些简单设置。这些数据通常是简单的键值对,如布尔值、整型、浮点型、字符串以及字符...

    android 使用SharedPreferences对数据存储/删除/读取/文件删除

    保存数据的更改需要调用`commit()`或`apply()`方法。`commit()`是同步操作,会立即返回结果;而`apply()`是异步操作,不会等待操作完成就返回,但保证所有数据最终会被保存。 ```java editor.commit(); // 或者 ...

    使用SharedPreferences进行数据存储

    `SharedPreferences`是Android提供的一种轻量级的数据存储方式,主要用于保存应用程序的简单配置数据,如布尔值、整型、浮点型、字符串等。这篇博客将深入探讨如何使用`SharedPreferences`进行数据存储,以及其背后...

    SharedPreferences 封装,保存基本数据类型,保存对象

    SharedPreferences 封装,保存基本数据类型,保存对象

    SharedPreferences保存输入记录

    在本案例中,“SharedPreferences保存输入记录”指的是应用程序利用SharedPreferences来存储用户的输入历史,以便在后续使用时能够快速恢复或参考这些记录。 在Android开发中,SharedPreferences通常用于保存那些不...

    Android之SharedPreferences数据保存

    本资源将通过一个具体的例子来介绍如何使用SharedPreferences进行数据保存。 SharedPreferences通常用于存储应用的偏好设置,比如用户是否开启通知、界面布局选择等。它的优点在于简单易用,读写速度快,而且数据...

    Android数据持久化之二:SharedPreferences 存储

    数据持久化就是指将那些内存中的瞬时数据保存到持久化设备中(如手机文件、数据库等),当关机,停电后,数据不丢失。 Android 系统中主要提供了三种方式用于实现数据持久化功能,分别是: 1、文件存储 2、...

    sharedpreferences 保存对象

    在Android开发中,`SharedPreferences` 是一个非常常用的数据存储机制,它主要用于保存应用中的轻量级数据,如用户的偏好设置、简单的配置信息等。`SharedPreferences` 提供了一种键值对(key-value pairs)的存储...

    使用ViewPager及SharedPreferences保存用户数据的demo

    `SharedPreferences`是Android提供的一种轻量级的数据存储方式,用于保存用户的偏好设置或简单的数据。在这个应用中,它被用来记录用户是否已经看过引导界面,这样当用户再次打开应用时,可以判断是否需要再次显示...

    Android使用SharedPreferences保存账号密码

    - 每次修改SharedPreferences后,都需要提交,否则数据不会保存。 - 如果多个线程同时编辑SharedPreferences,可能导致数据不一致,需做好同步控制。 总之,Android的SharedPreferences是简单易用的本地持久化...

    Android中使用SharedPreferences完成保存密码(简洁版)项目的任务要求.pdf

    2. 创建SharedPreferences.Editor对象,用于编辑和保存数据: ```java SharedPreferences.Editor editor = sharedPreferences.edit(); ``` 3. 使用Editor对象的putString()方法保存用户名和密码: ```java editor...

    SharedPreferences

    **二、使用SharedPreferences保存数据** 1. **获取SharedPreferences对象**:通常通过`getSharedPreferences()`方法从`Context`对象中获取,需要传入一个文件名(用于区分不同的SharedPreferences文件)和操作模式,...

    SharedPreferences数据存储和读取实例

    在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储一些简单的配置信息,如用户偏好设置、应用程序的状态等。它是一个键值对的存储系统,支持基本数据类型,如布尔型、...

    Android 3种数据保存(SharedPreferences存储 内部文件存储 数据库存储)

    SharedPreferences是Android提供的一种轻量级的数据存储方式,用于保存应用程序的简单配置信息,如用户设置、偏好设置等。它采用键值对的形式存储,支持基本数据类型如布尔型、整型、浮点型、字符串等。数据持久化在...

    实验九 使用SharedPreferences存储简单数据

    在实验九中,你可能需要创建一个简单的Android应用,包含几个输入框让用户输入数据,然后把这些数据保存到SharedPreferences中。之后,应用启动时可以从SharedPreferences读取这些数据,并显示在界面上。这是一个很...

    SharedPreferences 保存多个用户名和密码

    在Android开发中,SharedPreferences是应用数据存储的一种简单方式,它主要用于保存轻量级的数据,如用户的偏好设置、登录状态等。在这个场景下,我们需要利用SharedPreferences来实现保存多个用户名和密码的功能,...

Global site tag (gtag.js) - Google Analytics