开关机压力测试APK学习
2015-07-23 20:35
375 查看
楼主身在一个手机方案公司,最近在查看一个开关机压力测试的APK,记录一下,学习一下别人的代码。功能单一,代码简单,谢谢!
布局界面较简单,一个ListView里面含有三个Textiew,一个设置总的重启次数,一个重启开关,一个用于显示标记已经重启的次数。这里就不写出了。
程序代码比较简单。此外还有一个java文件。
相关部分已经说明,很好理解。欢迎留言。留做标记,以后好找。
布局界面较简单,一个ListView里面含有三个Textiew,一个设置总的重启次数,一个重启开关,一个用于显示标记已经重启的次数。这里就不写出了。
package com.zh.reboot; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.os.Bundle; import android.os.CountDownTimer; import android.os.Handler; import java.util.Timer; import java.util.TimerTask; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.Context; import android.view.View; import android.widget.AdapterView; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.AdapterView.OnItemClickListener; import android.text.Editable; import android.text.TextWatcher; import android.widget.Toast; public class mainActivity extends Activity { /** Called when the activity is first created. */ // get all Adapter SimpleAdapter adapter; ArrayList list; HashMap mp; ListView lv; EditText et_num; String[] itemslab = { "", "", "" }; String[] labmsg = { "", "", "" }; String num; String[] str = { "", "" }; private final Timer timer = new Timer(); private TimerTask task; Handler handler; private boolean rebootflag = true; public final static int NEED_REBOOT = 1; public final static int NOT_NEED_REBOOT = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); itemslab[0] = getString(R.string.set_total_num);//总共重启次数 itemslab[1] = getString(R.string.start_auto_reboot);//重启开关 itemslab[2] = getString(R.string.reboot_record);//已经重启次数记录 SharedPreferences sharedPreferences = getSharedPreferences("datafile", Context.MODE_PRIVATE); /* * Editor editor = sharedPreferences.edit();//get editor * editor.putInt("totalnum", 100); editor.putInt("count", 0); * editor.commit(); */// submit modify int totalnum = sharedPreferences.getInt("totalnum", 1); int count = sharedPreferences.getInt("count", 1); labmsg[0] = String.valueOf(totalnum); labmsg[2] = String.valueOf(count); lv = (ListView) findViewById(R.id.lv_operation); list = new ArrayList(); mp = new HashMap(); mp.put("label", itemslab[0]); mp.put("labmsg", labmsg[0]); list.add(mp); mp = new HashMap(); mp.put("label", itemslab[1]); mp.put("labmsg", labmsg[1]); list.add(mp); mp = new HashMap(); mp.put("label", itemslab[2]); mp.put("labmsg", labmsg[2] + "/" + labmsg[0]); list.add(mp); adapter = new SimpleAdapter(this, list, R.layout.item, new String[] { "label", "labmsg" }, new int[] { R.id.label, R.id.labmsg }); lv.setAdapter(adapter); if (count == totalnum) {//若相等,则表示开关机测试结束 } else { AlertDialog.Builder builder = new AlertDialog.Builder( mainActivity.this); builder.setMessage("(" + labmsg[2] + "/" + labmsg[0] + ")" + "\n" + getString(R.string.auto_dialog_msg)); builder.setNegativeButton(getString(R.string.no), new OnClickListener() { @Override public void onClick(DialogInterface dialog, int arg1) { // TODO Auto-generated method stub rebootflag = false; SharedPreferences sharedPreferences = getSharedPreferences( "datafile", Context.MODE_PRIVATE); Editor editor = sharedPreferences.edit();// get // editor editor.putInt("need_reboot", NOT_NEED_REBOOT); editor.commit();// submit data dialog.dismiss(); } }); builder.setPositiveButton(getString(R.string.yes), new OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { // excute reboot // modify count SharedPreferences sharedPreferences = getSharedPreferences( "datafile", Context.MODE_PRIVATE); int count = sharedPreferences.getInt("count", 1); int totalnum = sharedPreferences.getInt("totalnum", 1); if (count < totalnum) { count++; Editor editor = sharedPreferences.edit();// get // editor editor.putInt("count", count); editor.putInt("need_reboot", NEED_REBOOT); editor.commit();// submit data Intent intent = new Intent(Intent.ACTION_REBOOT); intent.putExtra("nowait", 1); intent.putExtra("interval", 1); intent.putExtra("window", 0); sendBroadcast(intent); } } }); builder.show();//弹出提示,是否选择继续重启,或者是取消 } // excute auto_reboot after 5s handler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); SharedPreferences sharedPreferences = getSharedPreferences( "datafile", Context.MODE_PRIVATE); int count = sharedPreferences.getInt("count", 1); int totalnum = sharedPreferences.getInt("totalnum", 1); if (count < totalnum && rebootflag == true) { count++; Editor editor = sharedPreferences.edit();// get editor editor.putInt("count", count); editor.commit();// submit data // excute reboot Intent intent = new Intent(Intent.ACTION_REBOOT); intent.putExtra("nowait", 1); intent.putExtra("interval", 1); intent.putExtra("window", 0); sendBroadcast(intent); } } }; task = new TimerTask() { @Override public void run() { // TODO Auto-generated method stub Message message = new Message(); message.what = 1; handler.sendMessage(message); } }; timer.schedule(task, 5000);//若在前面builder.show();中没有选择,则5S后自动重启 lv.setOnItemClickListener(new OnItemClickListener() { /** * response to click item */ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { HashMap item = (HashMap) arg0.getItemAtPosition(arg2); String label = String.valueOf(item.get("label")); if (label.equals(getString(R.string.set_total_num))) { AlertDialog.Builder builder = new AlertDialog.Builder( mainActivity.this); builder.setTitle(getString(R.string.set_total_num)); et_num = new EditText(mainActivity.this); et_num.setHint(getString(R.string.hint_words)); et_num.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) { if (s.length() > 0) { int pos = s.length() - 1; char c = s.charAt(pos); if (c < 48 || c > 57) { // s.delete(pos, pos + 1); Toast.makeText( mainActivity.this, getString(R.string.err_letter_info), Toast.LENGTH_SHORT).show(); } } // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } }); builder.setView(et_num); builder.setPositiveButton(getString(R.string.confirm), new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // dialog.dismiss(); String scount = et_num.getText().toString(); if (scount.equals("")) { Toast.makeText( mainActivity.this, getString(R.string.err_info_null), 4000 Toast.LENGTH_SHORT).show(); } else { int totalnum = Integer.parseInt(scount); if (totalnum > 0 && totalnum < 3000) { dialog.dismiss(); labmsg[0] = scount; SharedPreferences sharedPreferences = getSharedPreferences( "datafile", Context.MODE_PRIVATE); Editor editor = sharedPreferences .edit();// get editor editor.putInt("totalnum", totalnum); editor.putInt("count", 0); editor.commit();// submit data // add data to layout labmsg[0] = String .valueOf(totalnum); labmsg[2] = "0"; list = new ArrayList(); mp = new HashMap(); mp.put("label", itemslab[0]); mp.put("labmsg", labmsg[0]); list.add(mp); mp = new HashMap(); mp.put("label", itemslab[1]); mp.put("labmsg", labmsg[1]); list.add(mp); mp = new HashMap(); mp.put("label", itemslab[2]); mp.put("labmsg", labmsg[2] + "/" + labmsg[0]); list.add(mp); // add data to adapter adapter = new SimpleAdapter( mainActivity.this, list, R.layout.item, new String[] { "label", "labmsg" }, new int[] { R.id.label, R.id.labmsg }); lv.setAdapter(adapter);// add // adapter // to // listview // and show // it to // user } else { Toast.makeText( mainActivity.this, getString(R.string.err_info), Toast.LENGTH_SHORT).show(); dialog.dismiss(); } } } }); builder.setNegativeButton(getString(R.string.cancel), null); builder.show(); } else if (label.equals(getString(R.string.start_auto_reboot))) { AlertDialog.Builder builder = new AlertDialog.Builder( mainActivity.this); builder.setMessage(getString(R.string.auto_reboot_msg)); builder.setPositiveButton(getString(R.string.confirm), new OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { // modify count SharedPreferences sharedPreferences = getSharedPreferences( "datafile", Context.MODE_PRIVATE); int count = sharedPreferences.getInt( "count", 1); int totalnum = sharedPreferences.getInt( "totalnum", 1); if (count < totalnum) { count++; Editor editor = sharedPreferences .edit();// get editor editor.putInt("count", count); editor.putInt("need_reboot", NEED_REBOOT); editor.commit();// submit data Intent intent = new Intent( Intent.ACTION_REBOOT); intent.putExtra("nowait", 1); intent.putExtra("interval", 1); intent.putExtra("window", 0); sendBroadcast(intent); } } }); builder.setNegativeButton(getString(R.string.cancel), new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { SharedPreferences sharedPreferences = getSharedPreferences( "datafile", Context.MODE_PRIVATE); Editor editor = sharedPreferences.edit();// get // editor editor.putInt("need_reboot", NOT_NEED_REBOOT); editor.commit();// submit data dialog.dismiss(); } }); builder.create().show(); } else if (label.equals(getString(R.string.reboot_record))) { } } }); } }
程序代码比较简单。此外还有一个java文件。
package com.zh.reboot; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.widget.TextView; import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.util.Log; public class BootBroadcastReceiver extends BroadcastReceiver { /** Called when the activity is first created. */ static final String ACTION = "android.intent.action.BOOT_COMPLETED";//开机就启动,接收这个ACTION,检测是否需要继续开关机测试 private String TAG = "Reboot"; @Override public void onReceive(Context content, Intent intent) { // TODO Auto-generated method stub if (intent.getAction().equals(ACTION)) { SharedPreferences sp = content.getSharedPreferences("datafile", Context.MODE_PRIVATE); int count = sp.getInt("count", 0); int needreboot = sp.getInt("need_reboot", mainActivity.NOT_NEED_REBOOT); int totalnum = sp.getInt("totalnum", -1); Log.d(TAG, "count:" + count + " need_reboot:" + needreboot + " totalnum:" + totalnum); if (count != 0 && needreboot == mainActivity.NEED_REBOOT && count != totalnum) { Intent AutoRebootIntent = new Intent(content, mainActivity.class); AutoRebootIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); content.startActivity(AutoRebootIntent); } } } }
相关部分已经说明,很好理解。欢迎留言。留做标记,以后好找。
相关文章推荐
- C#开发ActiveX控件及制作CAB包
- 单例模式(懒汉式和饿汉式)
- iOS前期OC训练OC_07NSDate
- Eclipse调试Logcat类的说明
- [Leetcode 239, Hard] Sliding Window Maximum
- 单元测试,集成测试,系统测试,验收测试
- Java设计模式之基本原则(二)
- 一个可用的hosts文件
- chrome开启移动设备模拟-用浏览器访问手机网站
- 容器初始化
- 谓词
- Bootstrap-maxlength使用
- ZIP文件解压
- Skype for Business Server 2015-升级-实战公开课(免费视频)
- vim编辑器批量添加和删除注释
- jquery 的ajax的同、异步问题
- struts2 redirect redirectAction chain区别
- mirdeep2
- 斐波那契数列(公式)
- DT大数据梦工厂 第66讲