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

کسانی که با سرویس کار کردند لطفا راهنمایی کنند

D E V I L  8 سال پیش  4 سال پیش
+2 0

سلام

دوستان من از SignalR داخل پروژه خودم برای دریافت اطلاعات از سرور استفاده میکنم و این کار رو با سرویس انجام میدم.مشکل اینجاست که من نیاز به اجرای سرویس بصورت دائمی دارم.روش هایی که برای این کار مطرح شده استفاده از الارم منیجر هست ولی الارم منیجر در نسخه های بالا درست اجرا نمیشه و مصرف باطری رو هم بالا میبره.البته جاب اسکجولر هم وجود داره.من بجای استفاده از الارم منیجر تو ondestroy سرویس با استفاده از broadcasrt دوباره سرویس رو اجرا میکنم.حالا روش درستی هست یا نه نمیدونم ولی جواب میده.مشکل اینجاست که وقتی اپلیکیشن کلا بسته بشه متد ondestroy اجرا نمیشه و سرویس عملا از کار میفته.سرویس رو هم بصورت START_STICKY اجر ا میکنم.

از دوستانی که تجربه دارند سناریویی برای این کار سراغ دارند.مثل تلگرام که سرویسشو حتی دستی هم ببندی سریعا اجرا میشه.ممنونم

0 0
اگه کسی سوال دوستمون میدونه جواب بده لطفا.من خیلی دنبال جواب ایشونم (8 سال پیش)
0 0
یه لینک اینجا معرفی کردم ممکنه مشکلوت رو حل کنه : لینک (8 سال پیش)
0 0
آقا توروخدا بگو چه جوری اصلا با signalR کار کردی ؟؟؟ من اصلا نمیدونم چه جوری باید کار کنم (7 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Shadow  7 سال پیش
0 0

ابتدا توی مانیفیست این کدها رو اضافه کنید :

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

<receiver
android:name=".service.BootCompleteReceiver"
android:enabled="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</receiver>

اینم از کلاسی که توی مانیفیست تعریف کردیم :

public class BootCompleteReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, MyService.class);
context.startService(service);
}
}

داخل سرویس توی متد   onStartCommand  باید حتما return START_STICKY رو بنویسید.

 

این متد هم داخل سرویستون بنویسید 

@Override
public void onTaskRemoved(Intent rootIntent) {
Intent intent = new Intent(getApplicationContext(), this.getClass());
intent.setPackage(getPackageName());
startService(intent);
super.onTaskRemoved(rootIntent);
}

و در آخر اینو اول متد onStartCommand بنویسید 

onTaskRemoved(intent);

 

توجه کنید که برای تست سرویس شما حتما باید از برنامه تون generate sign apk بگیرید در حالت تست با مشکل برمی خورید.

 

پاسخ به سوال 
احسان  7 سال پیش
0 0

سلام از این آموزش استفاده کن . برای من که داره درست کار میکنه. مصزف باتری هم زیاد نیستش توی این روش:

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

0 0
آقا این لینک مشکل داره منظورت کدوم آموزشه؟ (4 سال پیش)

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