ممشکل در سرویس
سلام من میخوام یه برنامه بنویسم که وقتی دکمه روشن رو زدم سرویس شروع به کار کنه و بیرون از برنامه هم کار کنه و تا stopserviseنزدم کار کنه من این پروژه رو ساختم و سرویس شروع به کار میکنه ولی نمیتونم سرویس رو خاموس کنم و کد stopserviseکار نمیکنه انگار یه راه کاربردی و تست شده برای لغو سرویس بهم بگین ممنون میشم و یک چیز دیگه میخوام سرویس زمانی که گوشیم رو حالت قفل صفحه هست کار نکنه این هم کمکم کنید خیلی ممنون میشم
شما باید از برودکست ریسیور استفاده کنید و متدی که می خواهید رو تو قسمت onReceive ایجاد کنید یا صدا بزنید
public class MainReciver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("LOG", "MainReciver");
}
}
و در کلاسی که خواستید آلارم منیجر رو صدا بزنید
فعال سازی آلارم منیجر و غیر فعال کردن آن به صورت زیر است
public static void startAlarm() {
AlarmManager alarmManager=(AlarmManager) A.context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(A.context, MainReciver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(A.context, 0, intent, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),60 * 15000,pendingIntent); //15 min
Log.i("LOG","startAlarm");
}
public static void cancelAlarm() {
AlarmManager alarmManager=(AlarmManager) A.context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(A.context, MainReciver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(A.context, 0, intent, 0);
alarmManager.cancel(pendingIntent);
Log.i("LOG", "cancelAlarm");
}
ایجاد تگ ریسیور در مانیفست یادتون نره
<receiver
android:name=".MainReciver">
</receiver>
یک کلاس سرویس ایجاد میکنیم
public class XService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
MainReciver.getData();
}
}
ایجاد تگ ریسیور در مانیفست
<service
android:name=".XService">
</service>
پیشنهاد میشه آلارم منیجر رو تو کلاس G صدا بزنید تا قبل از هر چیزی اجرا بشه
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .