PDA

View Full Version : اجرای دوباره oncreate



NIMA_1981
سه شنبه 18 تیر 1392, 13:54 عصر
سلام دوستان من وقتی از یک صفحه تنضیمات برنامه وارد صفحه اصلی برنامه میشم میخوام تغییرات اعمال بشه من یک تابع در صفحه اصلی برنامه دارم که وقتی در قسمت onstart صفحه قرار میدم برای بار اول درست کار میکنه اما وقتی از صفحه تنضیمات به صفحه اصلی بر میگردم همه چیز استباه حساب میسه اما وقتی این تابع را در oncrerate صدا میزنم درست کار میکنه وفقط مشکل اینه که وقتی از صفحه دیگه بر میگردم دیگه این تابع فراخوانی نمیشه یا باید گوشی را یک برا بچرخونم که تابع oncreate ذوباره اجرا بشه یا دیگه نیمدونم باید چطوری انجام بدم


ممنون میشم اگه راهنمایی کنید

rubiks.kde
سه شنبه 18 تیر 1392, 14:46 عصر
106932

سلام به اکتیویتی lifecycle نگاه کنید.

اینکه زمانی که یه اکتیویتی استارت میشه ، اکتیوتی اول میره توی حالت onPause و موقع برگشت میاد به onStart و ...

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

NIMA_1981
سه شنبه 18 تیر 1392, 17:07 عصر
حالا باید چطوری از onstop قسمت oncreate را صدا بزنم

rubiks.kde
سه شنبه 18 تیر 1392, 17:47 عصر
حالا باید چطوری از onstop قسمت oncreate را صدا بزنم

شما نمیتونی این توابع رو صدا بزنی اگه اکتیوتی onstop بشه در بازگشت به اون oncreate فراخوانی میشه.
برای اینکه oncreate در اکتیویتی اول بعد از بازگشت از اکتیویتی دوم فراخونی بشه در زمان start کردن اکتیویتی دوم باید اکتیویتی اول finish بشه .

الان صفحه تنظیمات مگه چه فرقی با بقیه داره که حتما باید توی oncreate اون تابع اجرا بشه . من خودم همیشه تنظیمات رو توی onstart فراخوانی میکنم و مشکلی نیست

NIMA_1981
سه شنبه 18 تیر 1392, 18:20 عصر
من یک توضیح بیشتر میدم من یک صفحه اصلی دارم یک صفحه تنظیمات با توجه به مقدار هایی که در صفحه تنضیمات وارد میشه یکسری محاسبه انجام میده - برای بار اول که برنامه اجرا میشه همه چی درسته اما اگه وارد صفحه تنضیمات بشم و متغییر ها را عوض کنم میخوام وقتی کاربر به صفحه اول برگشت بعد از ذخیره اظلاعات همون لحظه محاسبه از اول اجرا بشه - من توی همه حالت ها تست کردم فقط در زمانی درست این محاسبات انجام میشه که oncreate دواره اجرا بشه - من توی onstart این را قرار داردم اما مقدار ها را اشتباه حساب میکنه اما وقتی در oncreate میزارم درسته و بعد از ذخیره اطلاعات بصورت دستی oncreate رو اجرا میکنم با چراخاندن موبایل چون در این حالت بازم oncreate صدا زده میشه اما در زمان بزگشت از یک اکتیویتی onstart اجرا میشه -

rubiks.kde
سه شنبه 18 تیر 1392, 18:43 عصر
مگه محاسبات چطوریه که توی یه حالت درسته و توی یه حالت اشتباه؟

NIMA_1981
سه شنبه 18 تیر 1392, 18:57 عصر
چیز خاصی نیست مثل یک ضرب و تقسیم ساده خودم هم دلیلشو نمیدونم - فقط اگه بشه موقع برگشت به اکتیوتی قبلی oncreate از اول صدا زده بشه مشکل حل میشه

rubiks.kde
سه شنبه 18 تیر 1392, 19:59 عصر
چیز خاصی نیست مثل یک ضرب و تقسیم ساده خودم هم دلیلشو نمیدونم - فقط اگه بشه موقع برگشت به اکتیوتی قبلی oncreate از اول صدا زده بشه مشکل حل میشه

میشه کدت رو بدی ببینیم

rubiks.kde
جمعه 21 تیر 1392, 20:19 عصر
با این کد امتحان کن میشه ریلود کرد

public void reload() {

Intent intent = getIntent();
overridePendingTransition(0, 0);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) ;
finish();

overridePendingTransition(0, 0);
startActivity(intent);
}

NIMA_1981
شنبه 22 تیر 1392, 12:55 عصر
بعد توی کدام تابع این را صدا بزنم داخل onstart قراردادم هی برنامه چند باز پشت سر هم اجرا میشه بعد خارج میشه

ahmadalishytvn
جمعه 22 آذر 1392, 07:27 صبح
سلام دوست عزیز تو زبان برنامه نویسی یه روش کد نویسی داریم به نام شی گرا http://barnamenevis.org/images/smilies/yahoo/123.gif بابا کدتو تو یک تابع جدا بنویس بعد وقتی بر میگردی به Main صداش بزن مثلا برا دکمه back گوشی کد مینویسی وقتی شما برگشت را زدید و به صفحه ای به id فلان رسید این تابع رو صدا بزن این قدر سخت نگیر کار رو