android 开机自动运行某个线程 最近在弄android方面的东西0.0想实现这么一个效果。 手机开机后,后台线程A自动运行,定期轮询。(A线程的主要功能是同步某一个工程的数据)。有木有这方面的代码案例。和参考文献。。求指导0.0 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己做系统的话,在launcher启动类里开个线程就可以了。否则在你的apk里加个boot service ^_^谢谢楼上回答 偶先了解了解boot service 让一个Service开机自动启动:1.首先开机启动后系统会发出一个Standard Broadcast Action:android.intent.action.BOOT_COMPLETED,这个Action只会发出一次。2.构造一个IntentReceiver类,重构其抽象方法onReceiveIntent(Context context, Intent intent),在其中启动你想要启动的Service。3.在AndroidManifest.xml中,首先加入<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>来获得BOOT_COMPLETED的使用许可,然后注册前面重构的IntentReceiver类,在其<intent-filter>中加入<action android:name="android.intent.action.BOOT_COMPLETED" /> ,以使其能捕捉到这个Action。http://www.cnblogs.com/ssqjd/archive/2009/02/08/1386460.html 代码如下package com.szy.broadcast.receiver;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;public class MyReceiver extends BroadcastReceiver { private static final String ACTION = "com.szy.broadcast.ACTION"; private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; private static final String BOOT_COMPLETED = "android.intent.action.BOOT_COMPLETED"; public MyReceiver(){ Log.i("广播接收器","初始化"); } @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals(ACTION)){ Log.i("广播接收器","自定义发送广播"); } if(intent.getAction().equals(SMS_RECEIVED)){ Log.i("广播接收器","短信接收广播"); } if(intent.getAction().equals(BOOT_COMPLETED)){ Log.i("广播接收器","开机广播"); } // context.startService(new Intent(context, // OlympicsService.class), null);//启动倒计时服务 // Toast.makeText(context, "OlympicsReminder service has started!", Toast.LENGTH_LONG).show(); //这边可以添加开机自动启动的应用程序代码 }}<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.szy.broadcast.activity" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".BroadcastReceiverActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="com.szy.broadcast.receiver.MyReceiver"> <intent-filter> <action android:name="com.szy.broadcast.ACTION" /> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.RECEIVE_SMS"/> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> </manifest> 我的android出现个很简单又解决不了的问题,求大牛看看,,equals会报错 android程序点击按钮后在定时器内执行代码 用SQlite在一个指定的集合中怎样查询 android jni 问题 java程序创建android布局文件的问题 如何将Hashtable中数据保存在TXT文件中 急!求助关于MMITest和工程模式的测试问题. 全志 A20内核clean命令 手机红外遥控器 求源码 Android开发新手:unfortunately,***has stopped 监听线程被关闭的问题!!!! 一个看似简单却很有意思的问题——感兴趣的来论
1.首先开机启动后系统会发出一个Standard Broadcast Action:android.intent.action.BOOT_COMPLETED,这个Action只会发出一次。2.构造一个IntentReceiver类,重构其抽象方法onReceiveIntent(Context context, Intent intent),在其中启动你想要启动的Service。3.在AndroidManifest.xml中,首先加入
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>来获得BOOT_COMPLETED的使用许可,然后注册前面重构的IntentReceiver类,在其<intent-filter>中加入<action android:name="android.intent.action.BOOT_COMPLETED" /> ,以使其能捕捉到这个Action。http://www.cnblogs.com/ssqjd/archive/2009/02/08/1386460.html
package com.szy.broadcast.receiver;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;public class MyReceiver extends BroadcastReceiver {
private static final String ACTION = "com.szy.broadcast.ACTION";
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
private static final String BOOT_COMPLETED = "android.intent.action.BOOT_COMPLETED";
public MyReceiver(){
Log.i("广播接收器","初始化");
}
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(ACTION)){
Log.i("广播接收器","自定义发送广播");
}
if(intent.getAction().equals(SMS_RECEIVED)){
Log.i("广播接收器","短信接收广播");
}
if(intent.getAction().equals(BOOT_COMPLETED)){
Log.i("广播接收器","开机广播");
}
// context.startService(new Intent(context,
// OlympicsService.class), null);//启动倒计时服务
// Toast.makeText(context, "OlympicsReminder service has started!", Toast.LENGTH_LONG).show();
//这边可以添加开机自动启动的应用程序代码
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.szy.broadcast.activity" android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".BroadcastReceiverActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.szy.broadcast.receiver.MyReceiver">
<intent-filter>
<action android:name="com.szy.broadcast.ACTION" />
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
</manifest>