تالار گفتمان nCIS.ir

نسخه‌ی کامل: ایجاد سرویس
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام ! میخوام اپ من همیشه یه کاری رو انجام بده یعنی از وقتی گوشی روشن میشه تا وقتی که خاموش میشه یک کار خاصی انجام بده !
چیزی که تا الان فهمیدم این بود که باید سرویس براش تعریف کنم ولی هیچ چیزی در این مورد نمیدونم کسی میتونه راهنمایی کنه ؟!
برای اینکه سرویس شما با خروج از برنامه هم شناسایی بشه و باقی بمونه، ابتدا باید سرویس موردنظر خودتون رو توی مانیفست معرفی کنید (داخل تگ 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 سرویس میتونین بازه‌ی زمانی تکرار و فعال یا غیرفعال‌بودنش رو کنترل کنین.