在这个例子中主要的就是有一个门磁警报系统,简单的说,门打开 警报就会响。
废话不多说 直接上代码:
这是核心方法代码:
Anfang.class
private void init() {
rg_securityMode = (RadioGroup) getActivity().findViewById(
R.id.rg_securityMode);
modesharedpreference = getActivity().getSharedPreferences("UserSP",
Context.MODE_PRIVATE);
final SharedPreferences.Editor editor = modesharedpreference.edit();
if (modesharedpreference.getBoolean("Mode", false)) {
rg_securityMode.check(R.id.bt_bufang);
} else {
rg_securityMode.check(R.id.bt_chefang);
}
rg_securityMode
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup v, int childChecked) {
switch (childChecked) {
case R.id.bt_bufang: {
editor.putBoolean("Mode", true);
editor.commit();
}
break;
case R.id.bt_chefang: {
editor.putBoolean("Mode", false);
editor.commit();
}
break;
}
}
});
}
在mian方法里面去调用上面那个类的方法所传递出来的信息。当你这个APP运行的时候 就会收到信息。
MianActivity.classList<String> WarningList = new ArrayList<String>();
Handler refreshMagneticHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 123) {
SharedPreferences modesharedpreference = getSharedPreferences(
"UserSP", Context.MODE_PRIVATE);
if (modesharedpreference.getBoolean("Mode", false)) {
if (msg.obj != (null)) {
JSONArray jsonAray = (JSONArray) msg.obj;
try {
JSONObject jsonObj = jsonAray.getJSONObject(0);
boolean isWarning = false;
String WarningInfo = "";
if (jsonObj.has("value")) {
if (jsonObj.getString("value").equals("ffff"))
isWarning = true;
if (jsonObj.getString("value").equals("0000"))
isWarning = false;
System.out
.println("01234567895132" + isWarning);
}
if (jsonObj.has("WarningInfo")) {
WarningInfo = jsonObj.getString("WarningInfo");
if (isWarning) {
if (!WarningList.contains(WarningInfo)) {
WarningList.add(WarningInfo);
final MediaPlayer mp = MediaPlayer
.create(MainActivity.this,
R.raw.alarm);
try {
if (mp != null)
mp.stop();
mp.prepare();
mp.start();
} catch (Exception e) {
e.printStackTrace();
}
// 播放mp3
try {
new AlertDialog.Builder(
MainActivity.this)
.setTitle(WarningInfo)
.setPositiveButton(
acroMultiGlobal
.getDisplayValue(getString(R.string.OK)),
new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface arg0,
int arg1) {
// TODO
// Auto-generated
// method
// stub
mp.stop();
}
}).show();
} catch (Exception e) {
e.printStackTrace();
}// 弹窗
}
} else if (!isWarning) {
WarningList.remove(WarningInfo);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
} else if (!modesharedpreference.getBoolean("Mode", false))
WarningList.removeAll(WarningList);
super.handleMessage(msg);
}
}
};
Timer timer_refreshMagneticWindowTask = new Timer();
TimerTask refreshMagneticWindowTask = new TimerTask() {
@Override
public void run() {
Message msg = new Message();
msg.what = 123;
msg.obj = new Security(MainActivity.this).GetSecurity();
refreshMagneticHandler.sendMessage(msg);
}
};
public void initTimer_Window() {
try {
timer_refreshMagneticWindowTask.schedule(refreshMagneticWindowTask,
3000, 3000);
} catch (Exception e) {
e.printStackTrace();
}
}
最后。就是在 onCreate()方法里面去执行
initTimer_Window()
方法即可。
上面的例子中用到了
SharedPreferences
存储数据。用到了handler方法传递数据。用到了Timer定时器的方法。如果有什么不理解这些方法。可以去百度或者后面我会继续更博我前面的文章,有这些方法的介绍。欢迎大家互相学习互相讨论。