package radar.com;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class yourReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, ServiceTest.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startService(i);
}
}
复制代码ServiceTest 类:package radar.com;
import java.util.Calendar;
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
public class ServiceTest extends Service{
Handler hd1=new Handler();
/**启动activity的开关*/
boolean b;
/**启动一次activity之后的一分钟内将不再重新启动*/
int time;
public static final Intent ACTION_START = null;
private static final String TAG = "TestService";
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public boolean onUnbind(Intent i) {
Log.e(TAG, "============> TestService.onUnbind");
return false;
}
@Override
public void onRebind(Intent i) {
Log.e(TAG, "============> TestService.onRebind");
}
@Override
public void onCreate() {
Log.e(TAG, "============> TestService.onCreate");
hd1.postDelayed(mTasks, delay);
}
@Override
public void onStart(Intent intent, int startId) {
Log.e(TAG, "============> TestService.onStart");
}
@Override
public void onDestroy() {
Log.e(TAG, "============> TestService.onDestroy");
}
public void log(){
Calendar c= Calendar.getInstance();
int h=c.getTime().getHours();
int m=c.getTime().getMinutes();
Log.i("hour", ""+h);
Log.i("minute", ""+m);
/**这里的16和10可以自己定义一下 主要是提醒的时间设置,我不想做的太繁琐,所有没有些闹钟,只是用这个测试一下:)*/
if(h==16&&m==10)
{
/**为防止持续调用,所以用boolean 变量b做了一个小开关*/
if(!b){
Intent i = new Intent();
i.setClass(ServiceTest.this, showActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(i);
this.stopSelf();
b=true;
}
}
/**开关开启后计时60秒,在这60秒之内就不再重新启动activity了,而60秒一过,上面的h和m条件肯定就不成立了*/
if(b){
time+=5;
if(time==60){
time=0;
b=false;
}
}
}
/** 速度控制参数(单位豪秒) */
private int delay = 5000;
/**
* 控制速度
* */
private Runnable mTasks = new Runnable()
{
public void run()
{
log();
hd1.postDelayed(mTasks, delay);
}
};
}
复制代码showActivity 类:(次类中啥都没有,就是演示一下activity可以被启动)package radar.com;
import radar.com.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
public class showActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
}
}
复制代码下面是很重要的AndroidManifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="radar.com"
android:versionCode="1"
android:versionName="1.0">
<application
android:icon="@drawable/icon"
android:label="@string/app_name">
<service
android:name=".ServiceTest"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</service>
<receiver android:name=".yourReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME"/>
</intent-filter>
</receiver>
<activity android:name=".showActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden|navigation"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="4" />
</manifest>
复制代码
分享到:
相关推荐
【Android】开机自启动Service Demo 相关文章链接:http://blog.csdn.net/etzmico/article/details/7317695
android开机自动启动service例子 android开机自动启动service例子
【Android】开机自启动 Service Demo 相关文章链接:http://blog.csdn.net/etzmico/article/details/7317695
本文实例讲述了Android实现开机自动启动Service或app的方法。分享给大家供大家参考,具体如下: 第一步:首先创建一个广播接收者,重构其抽象方法 onReceive(Context context, Intent intent),在其中启动你想要启动...
注意点: 1,开机自启动服务有时会失灵,使用开机自启动activity确保android正常运行。 2,包含android系统权限,使用keyStore方式。
ubuntu开机自启动nginx服务
android 开机自动启动的service demo,4.0完美运行
C# 开机启动服务(windows service) 本程序用ASP.NET C#开发,不针对系统版本限制。 本源码拿就来可以直接写您想要的服务,无需再改其它的代码,拿来主义是不是很好?例如订单服务。 本服务是100%源码,源码中包含: ...
android上怎样让一个Service开机自动启动 Posted on 2009-02-08 21:55 hk_king 阅读(168) 评论(0) 编辑 收藏 网摘 所属分类: 移动开发 转载出处:http://www.androidlab.cn/viewthread.php?tid=421&extra=page%3D1...
Google在更新Android8.0后对Service的...导致目前想要启动服务必需实现服务的前台化,打开应用才能顺利启动service,否则在服务启动5秒后,系统将自动报错,会弹出一个提示窗口。实际测试得系统的app才能启动service。
开机启动后,当系统发出android.intent.action.BOOT_COMPLETED广播时,接收该广播,并自动启动一个后台service。
还是做成一个 apk 吧,暂定只写一个 service 并开机自动启用,无 activity 的。 Java 中调用 native 程序我选择使用 JNI 方式,直接在 JNI_OnLoad 方法中调用 pthread_create 创建个线程跑原来的 main 就行啦。 ...
nginx开机自启动配置文件,在[CentOS 7.6 64位]系统下运行正常。 编译安装nginx后,将该配置文件放在服务器的/usr/lib/systemd/system/目录下,然后启动nginx服务。
在安卓开发中实现了service的开机自启动例程
Elasticsearch 开机自启脚本,方便用户自动启动Elasticsearch,也可以直接用systemctl启动或是关闭
开机自启动服务,暂时先开机启动一个Activity,在其中开启服务后finish掉。经测试,百度云4.0,小米4.1系统可以用,2.3系统可以。http://blog.csdn.net/joychine/article/details/10947819
在接收到这个广播就可以实现开机自启动功能 下面就是一个简单的开机启动的广播receiver">Android应用程序可以实现开机时启动相关应用 如service等 Android系统在开机启动时会发出一个系统广播"android ...