آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

شروع یک Activity جدید، از یک سرویس (Service)، در برنامه نویسی اندروید

فرض کنید که قصد داریم در یک سرویس (Service)، کدی بنویسیم که با اجرای آن، به یک Activity جدید با نام NextActivity برویم. برای این منظور، باید کدهای زیر را در میان کدهای سرویس (Service) بنویسیم :


Intent myIntent = new Intent(getBaseContext(), NextActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity(myIntent);
نویسنده علیرضا گلمکانی
شماره کلید 2856
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 2 2 0
سعید
۱۳۹۵/۱۰/۰۴
۱۹:۳۹

سلام. سایت بسیار خوب و آموزنده ای دارید.
برای اجرای این کدها آیا لازم نیست که دکمه ای در سرویس وجود داشته باشه تا با کلیک بر روی آن کد مورد نظر اجرا بشه؟
چطور میشه یک دکمه در سرویس ایجاد کرد؟

admin
۱۳۹۵/۱۰/۰۶
۱۶:۳۱

سلام.
کدهای سرویس (Service)، در یک Thread مجزا از خود برنامه اندروید (application) اجرا می شوند و بنابراین نیازی نیست که حتما کاربر در حال اجرای برنامه اندروید (application) باشد و ظاهر گرافیکی تعاملی (user interface) آن را ببیند (). بنابراین برای آن، ظاهر گرافیکی تعریف نمی شود. 
اگر می خواهید که کدهای سرویس (Service) هنگام اشاره بر روی یک دکمه (Button) اجرا شوند، باید دکمه (Button) را در ظاهر گرافیکی یک Activity تعریف کرده و سپس تعیین کنید که با اشاره بر روی آن دکمه (Button)، سرویس (Service) اجرا گردد.
برای چگونگی تعریف دکمه (Button) و تعیین کدهای مورد نظرتان برای اجرا هنگام اشاره بر روی دکمه (Button)، کلید زیر را بخوانید :



کد مربوط به اجرای یک سرویس (Service) را می توانید در کلید زیر بیابید :





اگر قصد تغییر ظاهر گرافیکی Activity توسط یک Thread جدا از Thread اصلی (یا با یک سرویس) را دارید، این کار اگر توسط کدهای معمولی تغییر ظاهر گرافیکی Activity صورت گیرد، با خطا روبرو می شود، زیرا یک thread جداگانه (به غیر از thread اصلی برنامه اندروید) که در حال اجرا است، تحت هیچ شرایطی نباید بخش تعامل با کاربر (user interface) برنامه اندروید را به روزرسانی (update - تغییر دادن) کند. هر تغییری (بروزرسانی) در بخش تعامل با کاربر (user interface) باید توسط thread اصلی (main thread) انجام شود (در غیر این صورت، مشکلاتی به وجود می آید). به thread اصلی، main UI thread نیز گفته می شود، زیرا تنها این thread است که با UI سر و کار دارد ().
اما با کمی تغییر در کدها، می توان این کار را انجام داد، که به عنوان مثال، کلید زیر را بخوانید (البته کدها برای حالت کلی وجود یک Thread جداگانه می باشند) :




ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)