2015年8月13日 星期四

開機後,自動加載程式(service)

Android 開機後,會發送一個BOOT_COMPLETED訊號,
接收到這個訊號後,就可以執行app,
如此,開機後就能autorun
APP必須有 BOOT_COMPLETED 權限和設定

AndroidManifest.xml
<application
 <activity
  android:name=".MainActivity"
  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="package+service_class_name"/> 

        <receiver android:name="package+broadcastreceiver_class_name">
                <intent-filter>
                        <action android:name="android.intent.action.BOOT_COMPLETED" />
                </intent-filter>
        </receiver>
</application>
BBroadcastReceiver.java
public class BBroadcastReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent) 
    {
        if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED))  
        (收到BOOT_COMPLETED訊號)
        {
            intent = new Intent(context, service_class.class);
            context.startService(intent);
        }
    }
}
SService.java
public class SService extends Service 
{
    @Override
    public IBinder onBind(Intent intent) 
    {
        return null;
    }
    @Override
    public void onCreate() 
    {
        super.onCreate();
        //todo
    }
    @Override
    public void onStart(Intent intent, int startId) 
    {
        super.onStart(intent, startId);
        //todo
    }
    @Override
    public void onDestroy() 
    {
        super.onDestroy();
        //todo
    }
}

ref:

沒有留言:

張貼留言