در این مطلب جدید در سال 1405 و سال 2026 ، سرویس یکی از کامپوننت های مربوط به اندروید می باشد که در پس زمینه اجرا می شود و هیچ نیازی به تعامل با کاربر ندارد.
آموزش سرویس اندروید
سرویس یکی از کامپوننت های مربوط به اندروید می باشد که در پس زمینه اجرا می شود و هیچ نیازی به تعامل با کاربر ندارد. برای مثال یک سرویس برای پخش آهنگ در پست زمینه می باشد در حالی که کاربر دارد با یک اپلیکیشن دیگر کار می کند.![]()
ساخت یک سرویس در اندروید
برای ایجاد یک سرویس نیاز دارید کلاس خود را از کلاس پایه Service ارث بری کنید سپس با پیاده کردن آن ، یک سرویس ایجاد کنید. در این نوشته با بعضی روش ها و خصوصیات اساسی این کلاس آشنا می شویم.
- onStart این روش زمانی اجرا می شود که سرویس شما توسط یک Activity فراخوانی شود و با فراخوانی روش startService بخواهید سرویس مورد نظر را اجرا کنید.
- onBind زمانی این روش فراخوانی می شود که بخواهیم جزیی از سیستم را به سرویس مورد نظر ارجاع دهیم؛ مثلا قصد دارید یک فایل صوتی را توسط یک سرویس پخش کنید.
سرویس ها دارای چرخه عمر می باشند که شکل زیر به صورت کامل آن را تشریح کرده است :

برای ایجاد یک سرویس ، باید یک کلاس جاوا ایجاد کنید و سرویس ها بر پایه کلاس باشد. سرویس ها بر پایه کلاس ، دارای توابع گوناگونی از callback می باشند که برخی از مهمترین آنها عبارتند از :
- onStartCommand() : سیستم زمانی آ« را فراخوانی می کند که یک کامپوننت دیگر مانند یک activity ، درخواست می کند که سرویس اجرا شود ، با دستور startService(). اگر شما از این روش استفاده کنید ، وظیفه شما است که سرویس را وقتی که کارش تمام می شود متوقف کنید و این کار با دستور stopSelf() یا stopService() امکان پذیر است.
- onBind : زمانی این روش فراخوانی می شود که بخواهیم جزیی از سیستم را به سرویس مورد نظر ارجاع دهیم؛ مثلا قصد دارید یک فایل صوتی را توسط یک سرویس پخش کنید.
- onCreate این روش زمانی فراخوانی می شود که یک سرویس برای دفعه اول اجرا شود و سیستم بخواهد یک نمونه از آن را ایجاد کنید (این متد قبل از onStartCommand و
- onBind فراخوانی می شود) ، اگر سرویس مورد نظر در حال اجرا باشد ، این متد هیچ وقت فراخوانی نمی شود.
- onDestroy این روش زمانی اجرا می شود که سرویس مورد نظر برای مدت زمان زیاد مورد استفاده قرار نگرفته باشد یا به صورت دستی سرویس Stop شده باشد.
حالا می خواهیم در یک مثال آموزش دهیم که چگونه می توانید سرویس خود را ایجاد کنید. قبل از انجام کار به نکات زیر دقت کنید :
- برای ساخت نرم افزار اندروید باید از Eclipse IDE استفاده کنید. باید با کمک نرم افزار یک پروژه جدید ایجاد کنید.
- باید فایل MainActivity.java را تغییر دهیم و دو دستور startService() و stopService() را به آن اضافه کنیم.
- باید یک فایل جاوا جدید به نام MyService.java ، در زیر پکیج com.example.helloworld ( در معرفی اکتیویتی ها توضیح داده شده است ) ایجاد کنید.
- تعریف کردن سرویس خود در AndroidManifest.xml با استفاده از تگ <service…/>.
- اضافه کردن دو تا دکمه در res/layout/activity_main.xml.
- تعریف کردن سرویس شروع و توقف در res/values/strings.xml.
حالا به مسیر src/com.example.helloworld/MainActivity.java رفته و کد زیر را به آن اضافه کنید :
package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.content.Intent;
import android.view.View;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main، menu);
return true;
}
// Method to start the service
public void startService(View view) {
startService(new Intent(getBaseContext()، MyService.class));
}
// Method to stop the service
public void stopService(View view) {
stopService(new Intent(getBaseContext()، MyService.class));
}
}
به مسیر src/com.example.helloworld/MyService.java رفته و کدهای زیر را به آن اضافه کنید :
package com.example.helloworld;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
public class MyService extends Service {
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent، int flags، int startId) {
// Let it continue running until it is stopped.
Toast.makeText(this، "Service Started"، Toast.LENGTH_LONG).show();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this، "Service Destroyed"، Toast.LENGTH_LONG).show();
}
}
حالا باید در AndroidManifest.xml تگ سرویس را معرفی کنید :
<manifest xmlns : android="http://schemas.android.com/apk/res/android" package="com.example.helloworld" android : versionCode="1" android : versionName="1.0" > <uses-sdk android : minSdkVersion="8" android : targetSdkVersion="15" /> <application android : icon="@drawable/ic_launcher" android : label="@string/app_name" android : theme="@style/AppTheme" > <activity android : name=".MainActivity" android : label="@string/title_activity_main" > <intent-filter> <action android : name="android.intent.action.MAIN" /> <category android : name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <service android : name=".MyService" /> </application> </manifest>
حالا دکمه های مورد نظر خود را در res/layout/activity_main.xml وارد می کنیم.
<LinearLayout xmlns : android="http://schemas.android.com/apk/res/android" android : layout_width="fill_parent" android : layout_height="fill_parent" android : orientation="vertical" > <Button android : id="@+id/btnStartService" android : layout_width="fill_parent" android : layout_height="wrap_content" android : text="@string/start_service" android : onClick="startService"/> <Button android : id="@+id/btnStopService" android : layout_width="fill_parent" android : layout_height="wrap_content" android : text="@string/stop_service" android : onClick="stopService" /> </LinearLayout>
حالا کدهای زیر را در res/values/strings.xml معرف کنید. این کار برای ایجاد دو ثابت جدید می باشد.
<resources> <string name="app_name">HelloWorld</string> <string name="hello_world">Hello world!</string> <string name="menu_settings">Settings</string> <string name="title_activity_main">MainActivity</string> <string name="start_service">Start Service</string> <string name="stop_service">Stop Service</string> </resources>
حالا برنامه را اجرا کنید.



![چهره های متولد و درگذشته 16 خرداد [عکس و بیوگرافی]](/media/k2/items/cache/480e7cd632f89f7038aea52bc6e94278_XL.jpg)


![بیوگرافی بازیگران سریال صفا با خانواده [داستان و نقش]](/images/up/231/506.jpg#joomlaImage://local-images/up/231/506.jpg?width=290&height=290)

![بیوگرافی بازیگران سریال گل سنگ [داستان و نقش]](/images/up/230/11.jpg#joomlaImage://local-images/up/230/11.jpg?width=290&height=290)






