بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ممشکل در سرویس

مدیریت گفتگو
121086 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام    من میخوام یه برنامه بنویسم که وقتی دکمه روشن رو زدم سرویس شروع به کار کنه و بیرون از برنامه هم کار کنه و تا  stopserviseنزدم کار کنه    من این پروژه رو ساختم و سرویس شروع به کار میکنه ولی نمیتونم سرویس رو خاموس کنم  و کد   stopserviseکار نمیکنه انگار            یه راه کاربردی و تست شده برای لغو سرویس بهم بگین ممنون میشم  و یک چیز دیگه  میخوام سرویس زمانی که گوشیم رو حالت قفل صفحه هست کار نکنه   این هم کمکم کنید خیلی ممنون میشم

نظرات

Amir 10 سال پیش
با کد System.exit(0) می تونید سرویس رو متوقف کنید اما مشکلش اینجاست که از برنامه هم خارج میشه.

پاسخ‌ها 2

atf 10 سال پیش

شما باید از برودکست ریسیور استفاده کنید و متدی که می خواهید رو تو قسمت 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>

 

نظرات

atf 10 سال پیش

یک کلاس سرویس ایجاد میکنیم

 
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 صدا بزنید تا قبل از هر چیزی اجرا بشه

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .