先看一下简单的图形界面吧,比较简单的实现定时关机!!!(我的上传资源中有整个工程:注:设定的关机时间是24小时制的)
当然我们是在eclipse下开发的,那么我们先建一个工程Shutdown(当然可以随便取),然后就是包名,类名什么的。。。这就不多说了,这里先看一下上面那个时钟的
代码:analogClock=(AnalogClock)findViewById(R.id.anolag_clock);
new Thread(){
public void run() {
try {
while(true)
{
Thread.sleep(1000);
tick++;
Message msg = Message.obtain();
msg.arg1 = tick;
handler.sendMessage(msg);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}.start();
handler=new Handler(){
public void handleMessage(Message msg) {
Calendar calendar=Calendar.getInstance();
int h=calendar.getTime().getHours();
int m=calendar.getTime().getMinutes();
int hour=h, minute = m;
tick=msg.arg1;
minute+= tick/60;
tick =tick%60;
hour+= minute /60;
minute=minute%60;
String str =" NOW TIME "+ MessageFormat
.format("{0,number,0}:{1,number,00}", hour%24,minute);
text.setText(str);
super.handleMessage(msg);
}
};
显示当前的时钟。
save button响应事件
class button_saveListener implements OnClickListener
{
@Override
public void onClick(View v) {
SharedPreferences sharedPreferences=getSharedPreferences("time",Activity.MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
if(edit_hour.getText().toString().equals("")||edit_minute.getText().toString().equals(""))
Toast.makeText(ShutdownActivity.this, "have no shutdown time", Toast.LENGTH_SHORT).show();
else
{
editor.putInt("hour",Integer.parseInt(edit_hour.getText().toString()));
editor.putInt("minute",Integer.parseInt(edit_minute.getText().toString()));
editor.commit();
Toast.makeText(ShutdownActivity.this, "save success", Toast.LENGTH_SHORT).show();
}
text_time.setText("SHUTDOWN TIME :"+Integer.parseInt(edit_hour.getText().toString())+":"+Integer.parseInt(edit_minute.getText().toString()));
Intent intent =new Intent();
intent.setClass(ShutdownActivity.this, ServiceActivity.class);//要建一个Service
startService(intent);
}
}
我们再来看看Service类:
public void onCreate() {
SharedPreferences myshaPreferences=getSharedPreferences("time",Activity.MODE_PRIVATE);
hour=myshaPreferences.getInt("hour", -1);
minute=myshaPreferences.getInt("minute", -1);
Thread thread=new Thread(){
public void run()
{
while(true)
{
Calendar calendar=Calendar.getInstance();
h=calendar.getTime().getHours();
m=calendar.getTime().getMinutes();
if(h==hour&&m==minute)
{
Intent newIntent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);//这里是会报错的,所以不能在eclipse下编译,要在源码下编译(下面会介绍)
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(newIntent);
break;
}
try {
Thread.sleep(1000);
} catch (Exception e)
{
e.printStackTrace();
}
}
}
};
thread.start();
super.onCreate();
}
在Manifast.xml文件中添加如下权限:<uses-permission android:name="android.permission.SHUTDOWN"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>"
还是贴出来吧:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jxnu.shutdown"
android:versionCode="1"
android:versionName="1.0"
>
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.SHUTDOWN"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>"
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".ShutdownActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".ServiceActivity" android:label="@string/app_name" android:enabled="true"></service>
<receiver android:name=".ShutdownBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED">
</action>
</intent-filter>
</receiver>
</application>
建立一个 BroadcastReceiver来接收广播android.intent.action.BOOT_COMPLETED(每次开机就启动service)
public class ShutdownBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
Intent newIntent = new Intent(context,ServiceActivity.class);
context.startService(newIntent);
}
}
}
大概差不多了,但是要将你的工程放到源码的package/app中,另外还得建一个Android.mk文件和default.properties文件,然后就是编译了,生成的Shutdown.apk会在out/.../system/app下,可以拿来安装。
具体在我上传的资源中有整个工程,想要学习的同学可以借鉴一下.
分享到:
相关推荐
android定时开关机服务,通过广播设置重启/开关机服务,在国内某大型公司设备中有应用
Android 定时关机··································
定时开关机完整源码,framework 层修改请看文章 https://blog.csdn.net/u012932409/article/details/100524321
android中定时有很多种是实现,常见的Handler 与...这里实现的需求时每天定时24点关机,有设备是定制系统,防止长时间的不关机导致应用的卡顿,在关机时并给用户以提示,如果无操作就自动关机。 第一步是实现简单布
android上面alarm功能设置定时功能时,并不能把alarm写入到rtc芯片的alarm寄存器中,所以要实现定时开机功能,需要另外实现接口 代码中在4.4和5.1上已调试通过,通过增加jni接口直接对rtc ioctrl写入alarm操作,在...
android 实现关机和 重启的代码;代码比较简洁,非常好用
设置开机重启 关机 和定时关机代码,仅供参考
Android自动开关机实现
Android定时自动启动应用程序~~~~~~~
android实现自动关机的具体方法代码.doc.docx
主要介绍了android studio实现简单考试应用程序,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
android程序控制关机,开机的没有实现。
宠物管理Android应用程序后端基于SSM实现宠物管理Android应用程序后端基于SSM实现宠物管理Android应用程序后端基于SSM实现宠物管理Android应用程序后端基于SSM实现宠物管理Android应用程序后端基于SSM实现宠物管理...
定时开关机程序,永驻内存,已测过多机型 晚上睡觉手机放在身边对身体辐射很大,故晚上定时将手机进入到飞行模式,大幅降低辐射,到早上起床时,手机自动进入网络模式,正常使用
简单的java定时关机源代码,有意者可以参考,谢谢!
1、关于关机:你可以使用 android 系统的关机功能,也可以发送广播 Intent intent_shutdown = new Intent("wits.com.simahuan.shutdown"); 2、发送设置时间:计算现在的时间和设定开机的时间差值,转换为秒,以字节...
Android实现自动开关机的源码,导入可用
android 应用程序基本实现. 是学习的基础篇
安卓手机自动关机-定时启动程序-事件触发启动(APK)。 这个APP需要ROOT权限,能够按照某种系统事件或预定时间触发执行某种程序或系统功能。 定时关机只是一个可定义小功能。绿色版放心使用。
android定时关机,重启代码分享;主要用到命令执行