انجمن سایت کلیدستان



اجرای اکتیویتی در پس زمینه (در برنامه نویسی اندروید)زمان کنونی: ۱۳۹۵/۰۹/۱۴، ۰۶:۲۴ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: alerji
آخرین ارسال: behzadkhan
پاسخ 8
بازدید 1630

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
اجرای اکتیویتی در پس زمینه (در برنامه نویسی اندروید)

اجرای اکتیویتی در پس زمینه (در برنامه نویسی اندروید)

#1
سلام خسته نباشید من میخاستم بدونم چجوری میشه برنامم اجرا بشه بعد با زدن یک دکمه برنامه بسته نشه اما در پس زمینه در حال اجرا باشه و بعد از یه مدت خاص یه کاری انجام بشه و مثلا یه اکتیویتی دیگه اجرا بشه

من خودم این کد رو داخل لیسنر باتن گذاشتم و جواب داد اما میخاستم بدوونم ایا این مشکلی داره یا که همینو تو پروژم استفاده کنم

کد پی‌اچ‌پی:
finish();
                try {
                    
Thread.sleep(5000);
                    
                }
                catch (
InterruptedException e) {
                    
// TODO Auto-generated catch block
                    
e.printStackTrace();
                }
                return;
                
Intent intent = new Intent(getApplicationContext(), Activity.class);
                
startActivity(intent); 

ممنون
پاسخ

اجرای اکتیویتی در پس زمینه (در برنامه نویسی اندروید)

#2
دوست عزیز منظورتون از پس زمینه دقیق چیه؟
این دستوری که شما نوشتید.
ابتدا با دستور
کد پی‌اچ‌پی:
finish(); 
اکتیویتی که درآن هستید از بین میره..بعد ش سعی میکنه  5ثانیه درحالت به اصطلاح sleep یعنی خوابیدن باشه...
بعدش اینکه 5 ثانیه مکث کرد
اکتیوتی دیگه شروع به آغاز میکند..
این کاریی هست که دستور شما انجام میده..حالا نمیدونم همچین هدفی میخواید داشته باشید یانه.
پاسخ
 سپاس شده توسط zanyyy

اجرای اکتیویتی در پس زمینه (در برنامه نویسی اندروید)

#3
سلام.
می توانید از سرویس (Service) استفاده کنید (در کل، برای اجرای کد در پس زمینه، سرویس را به کار ببرید، حالا یا در برنامه اندروید هستیم یا اینکه حتی برنامه اندروید بسته باشه)(Activity اگر به پس زمینه برود، یا در حالت Pause است یا در حالت Stop و در پس زمینه، نمی توان کدی در آن اجرا کرد) :

کلید شماره 2609

http://www.kelidestan.com/keys/categorie...ategory=36

یعنی شما در Activity ، سرویس را شروع می کنید تا کدهای آن اجرا شوند، بعد کد مربوط به خارج شدن از برنامه اندروید را اجرا می کنید (منظورم در خود Activity است، یعنی اول کد شروع سرویس و بعد کد خروج از برنامه اندروید را خواهیم داشت) تا به محض شروع سرویس، از برنامه اندروید خارج شویم. تا اینجا، برنامه در دید کاربر نیست و کدهایمان نیز در سرویس در حال اجرا هستند. پس برای بازگشت به خود برنامه اندروید، باید در انتهای کدهای سرویس، تعیین کنید که برنامه اندروید باز شده و به همان Activity (یا هر Activity دلخواه دیگر) وارد شویم، یعنی با پایان اجرای کدهای سرویس، وارد برنامه اندروید می شویم (تا مثلا پیامی نمایش داده شود یا ...).

--------------------------------------------------

یک حالت دیگر :
اگر بخواهیم از Activity خارج نشویم و حین نمایش یک سری پیام (مثلا نمایش ProgressBar)، یک سری کد در پس زمینه Activity اجرا شوند (در اینجا منظورمان از پس زمینه Activity ، خارج از Thread اصلی برنامه اندروید و با یک Thread جدید می باشد، ولی همچنان در Activity هستیم)، می توانیم از AsyncTask استفاده کنیم. یک مثال از AsyncTask :

کلید شماره 312

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط zanyyy

اجرای اکتیویتی در پس زمینه (در برنامه نویسی اندروید)

#4
ممنون از راهنماییتون اما من میخاستم بین کد های سرویس وقفه بدم با sleep اما اینجا خود اکتیویتی من وقفه میوفته
ینی میخاستم برنامه با زدن دکمه از برنامه بیاد بیرون و هر 5 ثانیه یک بار یه پیغامی رو نشون بده اما من در اینجا نمیتونم این کاررو بکنم
میشه کمکم کنید
پاسخ

اجرای اکتیویتی در پس زمینه (در برنامه نویسی اندروید)

#5
(۱۳۹۳/۱۲/۲۱, ۱۰:۱۵ ب.ظ)'alerji' نوشته: ممنون از راهنماییتون اما من میخاستم بین کد های سرویس وقفه بدم با sleep اما اینجا خود اکتیویتی من وقفه میوفته
ینی میخاستم برنامه با زدن دکمه از برنامه بیاد بیرون و هر 5 ثانیه یک بار یه پیغامی رو نشون بده اما من در اینجا نمیتونم این کاررو بکنم
میشه کمکم کنید

 


کد مربوط به وقفه را در خود کدهای سرویس بنویسید (چون شما قصد دارید که وقفه در اجرای کد سرویس باشند، نه Activity).
کد مناسب برای ایجاد وقفه در سرویس را یافته و آن را در خود سرویس بنویسید.

البته برای اجرای یک سری کد، به صورت هر چند ثانیه یک بار، باید کلید زیر را بخوانید :

کلید شماره 2861

نکته مهم :
ممکن است بخواهیم کدهایی که قبلا آنها را در Activity تست کرده ایم را این بار در یک سرویس اجرا کنیم، اما با پیام خطا روبرو شویم، این مسئله به دلیل تفاوت هایی است که باید در کدنویسی آنها در سرویس رعایت شود که معمولا با تجربه می توان آنها را متوجه شد (تذکر دادم که اگر با خطا روبرو شدید، فکر نکنید اصل کد مشکل داره).

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط zanyyy

اجرای اکتیویتی در پس زمینه (در برنامه نویسی اندروید)

#6
سلام و عرض ادب
ببخشید اگه بخواهیم یه سرویس بعد از خاموش و روشن شدن تلفن همراه باز اجرا بشه چیکار باید بکنیم؟
پاسخ

اجرای اکتیویتی در پس زمینه (در برنامه نویسی اندروید)

#7
باید از bottcomplite revicer
استفاده کنی
پاسخ
 سپاس شده توسط behzadkhan

اجرای اکتیویتی در پس زمینه (در برنامه نویسی اندروید)

#8
(۱۳۹۵/۰۱/۲۱, ۱۱:۳۷ ق.ظ)ail603601 نوشته: باید از bottcomplite revicer
استفاده کنی

مرسی علی جان فدات
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)