ali8968 11 ارسال شده در 10 دی، ۱۳۹۳ اشتراک گذاری ارسال شده در 10 دی، ۱۳۹۳ سلام دوستان چجوری میشه کاری کرد که یه اکتیویتی در صورت بسته شدن برنامه بازم کارکنه فک کنم باید از سرویس استفاده کنم اما چجوری؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مجید آرتا 5,874 ارسال شده در 12 دی، ۱۳۹۳ اشتراک گذاری ارسال شده در 12 دی، ۱۳۹۳ سلام پژمان جان چیزی رو که میگی رو عملا انجام بده ببین میشه یا نه ؟ بعد اگه جواب نداد میشه به وسیله خلقه Do While یه جوری بی نهایتش کرد لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مهران محمودی 778 ارسال شده در 12 دی، ۱۳۹۳ اشتراک گذاری ارسال شده در 12 دی، ۱۳۹۳ اکتیویتی که بسته شه دیگه بسته شده و کاریش نمیتونی کنی. تو میتونی تایمر رو از سرویس فعال کنی! ولی وقتی برنامه متوقف شه تایمر هم توقف میکنه. این کد اکتیویتی: #Region Attributes #ApplicationLabel: B4A Example #VersionCode: 1 #VersionName: #SupportedOrientations: unspecified #CanInstallToExternalStorage: False #FullScreen: False #IncludeTitle: True#End RegionSub Process_Globals Dim timer1 As TimerEnd SubSub Globals Dim lbl1 As LabelEnd SubSub Activity_Create(FirstTime As Boolean) timer1.Initialize("t1",1000) lbl1.Initialize("lbl1") lbl1.Text = "0" lbl1.TextSize = 20 Activity.AddView(lbl1,0,0,50%x,50%y)End SubSub t1_Tick Dim num = lbl1.Text +1 As Int lbl1.Text = numEnd SubSub Activity_Pause(UserClosed As Boolean) StartService(ss)End Sub اینم کد سرویس: #Region Service Attributes #StartAtBoot: False#End RegionSub Process_GlobalsEnd SubSub Service_Create Main.timer1.Enabled = TrueEnd SubSub Service_Start (StartingIntent As Intent)End SubSub Service_DestroyEnd Sub اگه حرف تو درست باشه وقتی برنامه بسته میشه باید به مقدار لیبل همچنان اضافه شه، ولی اینطور نیست. خودت ببین. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 12 دی، ۱۳۹۳ اشتراک گذاری ارسال شده در 12 دی، ۱۳۹۳ درسته پس اگه اینطور باشه کاریش نمیشه کرد و به قول مجید اکتیویتی بسته شد دیگه تمومه. یعنی راهی نداره؟ مهران جان پس همین مثالی که زدی رو باید تو سرویس انجام بدیم. یه متغیر int داخل proces_Gloubal تعریف کنیم و داخل سرویس هم تایمری جدا بذاریم و هر بار به مقدار همون متغیر یکی اضافه کنه و وقتی اکتیویتی دوباره اجرا شد مقدارش رو بریزه داخل همون لیبیل اکتیویتی. درضمن اگه بخوایم بعد از بسته شدن برنامه به ادامه همون عددی که شده بازهم اضافه بشه باید مقدار لیبل رو توی همون متغیر بریزیم تا بقیش رو از سرویس اضافه کنه. ولی در همه ی مواقع نمیشه ازاین روش استفاده کرد..... واتس اپو لاین و اینا پس چجوری ان.......؟؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مهران محمودی 778 ارسال شده در 13 دی، ۱۳۹۳ اشتراک گذاری ارسال شده در 13 دی، ۱۳۹۳ واتس اپو لاین و اینا پس چجوری ان.......؟؟ وقتی اکتیویتی دوباره اجرا شد مقدارش رو بریزه داخل همون خودت جواب خودت رو حدودا دادی! راستش من خیلی دقیق نمیدونم اینا چیکار میکنن ولی تا جایی که من مطالعه کردم (نمیگم 100%) ، نمیشه وقتی اکتیویتی بستس توش تغییری اعمال کرد. ولی راهی که همین الان به ذهنم میرسه اینه که: (گرچه وقتی درگیرش بشی راه های بهتری هم پیدا میکنی) اگه دقت کرده باشی مثلا تو وایبر، وقتی بازش میکنی پیامها اگه زیاد باشن شروع میکنن به لود شدن (یعنی از قبل اتفاقی تو اکتیویتی نیفتاده.) یا از قبل لایوت آماده شده باشه تو سرویس، موقع اجرای اکتیویتی بارگذاری بشه داخلش... یه چی تو این مایه ها. من تحقیق میکنم اگه راهی برای اعمال تغییر در اکتیویتی در هنگام بسته بودن وجود داشت، میگم بهتون. موفق باشی. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ehsan_pars 16 ارسال شده در 24 مرداد، ۱۳۹۴ اشتراک گذاری ارسال شده در 24 مرداد، ۱۳۹۴ فکر میکنم تاپیک داره از تیتر خودش جدا میشه بهتره سرچ کنید در مورد سوالهای اخر بحثهای زیادی در انجمن هست . برای اجرای سرویس به صورت زمان بندی نیازی به تایمر نیست سرویسها قابلیت زماندی دارند StartServiceAt(Me,DateTime.Now+30*1000,True) اینو در قسمت Service_Start بنویسید اون زمان الان هر 30 ثانیه یکبار هست میتونید خودتون تنظیم کنید مثلا روزی یکبار یک چیزی رو بیاد چک کنه . این سرویس اگر اتواستارت بشه هرگز Kill نمیشه مگر برنامه رو پاک کنن. بله شما درست می فرمایید اما برای بار اول وقتی برنامه بسته میشه سرویس هم بسته میشه ، و برای زنده شده مجدد باید گوشی ری استارت بشه اگر نکته یا .....مونده دوستان بزرگوار مطرح کنند تا از شما عزیزان یاد بگیریم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
امین پوراباذری 1,045 ارسال شده در 9 تیر، ۱۳۹۴ اشتراک گذاری ارسال شده در 9 تیر، ۱۳۹۴ چجوری یه نوتیفیکشن داخل سرویس به کار بگیریم که با بستن برنامه نوتیفیکشن نره کدهای نوتیفیکشن می دونم داخل سرویس هم میزارم ولی نوتیفیکشن با باز کردن برنامه ایجاد نمیشه چکار کنم؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Intelligent 93 ارسال شده در 10 دی، ۱۳۹۳ اشتراک گذاری ارسال شده در 10 دی، ۱۳۹۳ از منوی project یه سرویس ایجاد کن توی ساب Service_Create کدهایی که میخوای به محض ران شدن سرویس اجرا بشه رو بذار (مثل Activity_Create) توی ساب Service_Start هم کدهایی که با هر بار استارت شدن سرویس میخوای اجرا بشن رو بذار مثلا با StartService میتونی از توی اکتیویتی دستور اجرا یه سرویس رو بدی لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ali8968 11 ارسال شده در 11 دی، ۱۳۹۳ سازنده اشتراک گذاری ارسال شده در 11 دی، ۱۳۹۳ چند تا سوال دیگه 1. پس من تویه یه اکتیویتی سرویس رو استارت کنم بعد اگه از برنامه بیام بیرون اون سرویس همچنان فعاله درسته؟ 2.من میخوام یه دستور شرطی تو سرویس بزارم که زمانی که شرط برقرار شد یه نوتیفیکیشن اجرا بشه پس این دستور شرطی رو تو Service_Create بنویسم؟ 3.بعد واسه اینکه این دستور شرطی مدام اجرا شه چیکار کنم؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مهران محمودی 778 ارسال شده در 11 دی، ۱۳۹۳ اشتراک گذاری ارسال شده در 11 دی، ۱۳۹۳ بله، سرویسی که با StartService شروع به کار کنه تا وقتی خود کاربر از تنظیمات گوشیش اونو نبنده و یا خود برنامه با StopService متوقفش نکنه همچنان به کار خودش ادامه میده. البته با خاموش و روشن شدن گوشی هم ممکنه سرویس متوقف شه. در مورد سوال دومتون Service_Create مختص وقتی هستش که شما با StartService سرویس مربوطه رو اجرا میکنید! و دیگه ربطی به روند کار سرویس نداره. یعنی فقط همون لحظه اوله! از یه تایمر میتونید استفاده کنید و یا راه هایی که شاید خودتون درنظر داشته باشید. برای مدام اجرا شدن از حلقه میتونی استفاده کنی، البته بستگی به نوع شرط هم داره اگه سنگینه و به روند کار گوشی آسیب میرسونه (برای مثال گوشی رو کند میکنه) اگه اینطوره بهتره دقت کنی و از راه های دیگه استفاده کنی. موفق باشی. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Intelligent 93 ارسال شده در 11 دی، ۱۳۹۳ اشتراک گذاری ارسال شده در 11 دی، ۱۳۹۳ راه و چاهش رو من بهت گفتم خلاقیت و یکمی وقت گذاشتنش رو سپردم به شما.. 1 درسته 2 StartService 3 میتونی توی رویداد تیک یه تایمر کدها رو تکرار کنی.. راه های زیادی هست لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ali8968 11 ارسال شده در 11 دی، ۱۳۹۳ سازنده اشتراک گذاری ارسال شده در 11 دی، ۱۳۹۳ بچه ها به نظرتون اگه من بخوام یه دستوری ساعتی یه بار اجرا بشه باید چیکار کنم؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مهران محمودی 778 ارسال شده در 11 دی، ۱۳۹۳ اشتراک گذاری ارسال شده در 11 دی، ۱۳۹۳ توی Service_Create تایمر رو فعال کن و Interval رو بذار 1 ساعت که میشه : 3600000 و توی Timer_Tick دستورت رو قرار بده. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
alireza_hsi 160 ارسال شده در 10 تیر، ۱۳۹۴ اشتراک گذاری ارسال شده در 10 تیر، ۱۳۹۴ فکر میکنم تاپیک داره از تیتر خودش جدا میشه بهتره سرچ کنید در مورد سوالهای اخر بحثهای زیادی در انجمن هست . برای اجرای سرویس به صورت زمان بندی نیازی به تایمر نیست سرویسها قابلیت زماندی دارند StartServiceAt(Me,DateTime.Now+30*1000,True) اینو در قسمت Service_Start بنویسید اون زمان الان هر 30 ثانیه یکبار هست میتونید خودتون تنظیم کنید مثلا روزی یکبار یک چیزی رو بیاد چک کنه . این سرویس اگر اتواستارت بشه هرگز Kill نمیشه مگر برنامه رو پاک کنن. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 12 دی، ۱۳۹۳ اشتراک گذاری ارسال شده در 12 دی، ۱۳۹۳ ممنون دوستان خیلی خوب بود من اینارو نمیدونستم. حالا یه سوال: میشه یه کاری کرد که تو سرویس هم کارهایی که تو اکتیویتی برنامه اتفاق میفته انجام بشه؟؟ یعنی چیز دیگه ای نداره؟ فقط باید قسمت Create اتفاقاتی که قرار بیفته بنویسیم؟ مثلا فکر کنید داخل اکتیویتی یه تایمر داریم و با کلیک روی یه باتون اون تایمر رو فعال میکنیم و به کار خودش ادامه میده. حالا وقتی برنامه توقف شد میخوایم که اون تایمر به کارش ادامه بده.... (همون تایمری که داخل اکتیویتی بوده، و نه اینکه تعریف تایمری جدا در سرویس) خودم الان که فکر میکنم میگم میشه اون تایمری که تو اکتیویتی داره کار میکنه رو داخل: Process_Globals تعریف کرد و با اجرا شدن سرویس همون تایمر رو اینجوری فعال کنیم: Main.time1.Enabled=True اینجوری بعد کدهایی که توی ساب تیک تایمر اکتیویتی اصلی نوشته شده اجرا میشن؟؟؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
ali8968 11
سلام دوستان
چجوری میشه کاری کرد که یه اکتیویتی در صورت بسته شدن برنامه بازم کارکنه
فک کنم باید از سرویس استفاده کنم اما چجوری؟
لینک ارسال
به اشتراک گذاری در سایت های دیگر
14 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.