Restart کردن Activity ، هنگام چرخش صفحه نمایش گوشی، در برنامه نویسی اندروید
اگرچه حالت پیش فرض اندروید این است که با چرخش صفحه نمایش گوشی، Activity از ابتدا اجرا شود (Restart شود)، اما گاهی به دلیل کدنویسی های مختلف، ممکن است که این حالت را دیگر نداشته باشیم. بنابراین در ادامه، نکات لازم برای Restart کردن Activity ، هنگام چرخش صفحه نمایش گوشی را شرح می دهیم. همچنین روشی را هم ذکر می کنیم که این امکان را می دهد که قبل از Restart شدن Activity ، کدهای دلخواه دیگری را هم اجرا نماییم.
1- استفاده از حالت پیش فرض :
همان طور که تذکر دادیم، حالت پیش فرض اندروید این است که با چرخش صفحه نمایش گوشی، Activity از ابتدا اجرا شود (Restart شود). اما موردی که می تواند این حالت را تغییر دهد، استفاده از یک سری ویژگی برای مشخصه configChanges از تگ Activity در فایل AndroidManifest.xml می باشد.
به عنوان یک مثال، فرض کنید که تگ مربوط به Activity را در فایل AndroidManifest.xml پیدا کرده و مشخصه زیر را به آن اضافه می کنیم (یا اگر قبلا این مشخصه برای آن ذکر شده، چک می کنیم که به صورت زیر باشد) :
این مورد باعث می شود که هنگام چرخش گوشی، Activity اطلاعات خود (حالت فعلی خود) را حفظ کند و Restart نشود. بنابراین برای Restart شدن Activity هنگام چرخش گوشی، باید این مشخصه به درستی تعیین شده باشد (یا اینکه کامل آن را حذف کنیم).
2- استفاده از روش onConfigurationChanged :
برای Restart شدن Activity در هنگام چرخش صفحه نمایش گوشی، مراحل زیر را اجرا می کنیم (این روش به ما این امکان را می دهد که قبل از Restart شدن Activity ، کدهای دلخواه دیگری را هم اجرا کنیم) ( آموزش شماره 3054 ) :
فرض کنید که قصد داریم هنگام چرخش صفحه نمایش گوشی، یک سری کد اجرا شود. برای این منظور، ابتدا تگ مربوط به Activity را در فایل AndroidManifest.xml پیدا کرده و مشخصه زیر را به آن اضافه می کنیم (یا اگر قبلا این مشخصه برای آن ذکر شده، چک می کنیم که به صورت زیر باشد) :
در اندروید، به صورت پیش فرض، وقتی صفحه نمایش می چرخد، Activity دوباره از اول اجرا می شود (Restart می شود). اما با عبارتی که ما در کدهای قبل، برای مشخصه configChanges از تگ Activity تعیین کردیم، دیگر Restart شدن Activity را نخواهیم داشت، بنابراین هنگام چرخش، اطلاعات Activity نگه داشته می شود ( آموزش شماره 270 ). چون می خواهیم که با چرخش صفحه نمایش گوشی، حتما Activity از ابتدا اجرا شود (Restart شود)، باید کدهایی که در Activity می نویسیم، به صورت زیر باشد (با استفاده از آموزش شماره 3042 ) :
در واقع با کد بالا، در روش onConfigurationChanged ، کدهایی برای Restart شدن Activity اجرا کرده ایم (با استفاده از آموزش شماره 3042 ).
به جای عبارت your code // باید کدهایی را بنویسید که قصد دارید هنگام چرخش صفحه نمایش گوشی، اجرا شوند (قبل از Restart شدن Activity).