Android應用是否可以只有一個Service或Broadcast Reciver,而沒有Activity?【轉】
阿新 • • 發佈:2019-02-06
來自:http://blog.csdn.net/pku_android/article/details/7329080
Service是android四大元件中與Activity最相似的元件,都可以代表可執行的程式。 Service與Activity的區別在於: (1)、Service一直在後臺執行,沒有使用者介面。 (2)、一旦service被啟動之後,就跟Activity一樣。有自己的生命週期。所以可以沒有Activity。 開發service需要兩個步驟: (1)、定義一個繼承service的子類 (2)、在AndroidManifest.xml中配置該Service ,其- package ss.pku.edu.cn;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- publicclass LaunchReceiver extends BroadcastReceiver
- {
- @Override
- publicvoid onReceive(Context context, Intent intent)
- {
- Intent intent1 = new Intent(context , MyService.class);
- // 啟動指定Server
- context.startService(intent1);
- }
- }
- package ss.pku.edu.cn;
- import android.app.Service;
- import android.content.Intent;
- import android.os.IBinder;
- publicclass MyService extends Service
- {
- @Override
- public IBinder onBind(Intent intent)
- {
- returnnull;
- }
- @Override
- publicvoid onCreate()
- {
- System.out.println("service create");
- }
- }
然後在AndroidManifest.xml 進行新增 許可權和action
- <uses-sdkandroid:minSdkVersion="8"/>
- <uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name">
- <receiverandroid:name=".LaunchReceiver">
- <intent-filter>
- <actionandroid:name="android.intent.action.BOOT_COMPLETED"/>
- </intent-filter>
- </receiver>
- <serviceandroid:name=".MyService">
- </service>
- </application>
這樣的話,就可以做到開機的時候執行服務,這種方式,相信大家在開發android的時候,會經常被用到。希望這個小知識點能夠對大家開發android的過程中有所幫助,歡迎大家批評指教。