سلام ! میخوام اپ من همیشه یه کاری رو انجام بده یعنی از وقتی گوشی روشن میشه تا وقتی که خاموش میشه یک کار خاصی انجام بده !
چیزی که تا الان فهمیدم این بود که باید سرویس براش تعریف کنم ولی هیچ چیزی در این مورد نمیدونم کسی میتونه راهنمایی کنه ؟!
برای اینکه سرویس شما با خروج از برنامه هم شناسایی بشه و باقی بمونه، ابتدا باید سرویس موردنظر خودتون رو توی مانیفست معرفی کنید (داخل تگ Application) :
<service android:name=".MyService" />
الان ما یک سرویس معرفی کردیم که توی پکیج اصلی خود برنامه معرفی شده. بنابراین باید یک کلاس بهنام MyService.java توی پکیج اصلی برنامه بسازیم و از کلاس Service (یا یکی از فرزندانش) مشتق کنیم و کارهای لازم رو اونجا انجام بدیم:
public class MyService extends Service {
public static boolean enabled = true;
public static int interval = 3600;
@Override
public void onCreate() {
super.onCreate();
if (enabled) {
new Thread(new Runnable() {
@Override
public void run() {
try {
while (enabled) {
// do whatever you want here
Thread.sleep(interval * 1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}
@Override
public void onDestroy() {
super.onDestroy();
enabled = false;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
حالا یه کلاس App.java توی پکیج اصلی برنامه بسازین با این کد:
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
Intent intent = new Intent(getApplicationConext(), MyService.class);
startService(intent);
}
}
و این کلاس رو توی مانیفست با خاصیت name تگ application معرفی کنید:
<application
android:name=".App"
... >
...
</application>
با تنظیم مقادیر interval و enabled سرویس میتونین بازهی زمانی تکرار و فعال یا غیرفعالبودنش رو کنترل کنین.