بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

اجرای مجدد یک اکتیویتی

مدیریت گفتگو
سعید 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام.

من داخل یک کلاس دیگه یک متد نوشتم که بیاد و در صورتی که گوگشی به ایترنت وصل نبود با AlertDialog یک AlertDialog نمایش بده و یه دگمه داخل این AlertDialog وجود داره که اگه رو این کلیک کرد مجدد همون اکیتیویتی ریفرش بشه.

این قسمت که اکتیوی رو رو ریفرش کنمو نمیدونم

حتی به عنوان ورودی یک اکتیویتی هم دادم که تو اینتنت ازش استفاده کنم اما ارور میده 

 public class ChechConnect {

  public static void conneted(Activity activity){
    if(!App.isOnline()){
      AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(App.currentActivity);
      LayoutInflater inflater = App.currentActivity.getLayoutInflater();
      final View dialogView = inflater.inflate(R.layout.connect_dialog, null);
      dialogBuilder.setView(dialogView);
      TextView txt1 = (TextView) dialogView.findViewById(R.id.txt1);
      TextView txt2 = (TextView) dialogView.findViewById(R.id.txt2);
      txt2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                //////// این قسمت  //////////
          Intent intent = new Intent(App.currentActivity, activity.this);
          App.currentActivity.startActivity(intent);
          ///////////////////
        }
      });
      AlertDialog alertDialog = dialogBuilder.create();
      alertDialog.show();
    }
  }
 

 

 

نظرات

احمد 10 سال پیش
چرا اکتیویتی باید دوباره اجرا بشه
سعید 10 سال پیش
تا مجدد اطلاعات رو دریافت کنه
احمد 10 سال پیش
لازم به این کار نیس کافیه زمانی که اتصال برقرار شد اون قسمت کدی که داده میگیره را دوباره صدا بزنید
سعید 10 سال پیش
ممنو از راهنماییتون اما کلا راهی هست بشه اکتیویتی دوباره اجرا بشه؟
اجرا کردن دوباره اکتیویتی فک نکنم کار درستی باشه. دوستمون درست میگه. ولی به هر حال اگر دوباره میخواید استارت کنید یک intent تعریف کنید بعد توی onCreate اون رو با تابع ()getIntent مقداری دهی کن. حالا هر وقت خواستی recreate کنی اول اکتیویتی رو finish کن بعد بزن( startActivity(intent . لینک

پاسخ‌ها 2

احمد 10 سال پیش

این یه نمونه:

 Activity1.this.finish();
Intent intent = new Intent(Activity1.this, Activity1.class);
startActivity(intent);

نظرات

حمید 10 سال پیش

کد ساخت مجدد اکتیویتی:

if (Build.VERSION.SDK_INT >= 11) {
recreate();
} else {
Intent intent = getIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(0, 0);
startActivity(intent);
overridePendingTransition(0, 0);
}

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .