آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

121086  9 سال پیش  9 سال پیش
0 0

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

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

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

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

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


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