آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

چرا تابع برعکس کار میکنه؟! (حل شد)

nooriDeveloper  11 سال پیش  11 سال پیش
0 0

من تو کلاس G یه تابع برای چک کردن اینکه اکتیویتی forground هستش نوشتم ولی نمیدونم چرا چپه عمل میکنه! کد رو ببینید:

 public class G extends Application {

	public static boolean isActivityVisible() {
		return activityVisible;
	}

	public static void activityResumed() {
		activityVisible = true;
	}

	public static void activityPaused() {
		activityVisible = false;
	}
private static boolean activityVisible; public static final Handler HANDLER = new Handler(); public static Activity currentActivity;
@Override public void onCreate() { super.onCreate(); context = getApplicationContext(); } }

اینم فراخوانی:

G function = new G();
G.HANDLER.postDelayed(new Runnable() {
@Override public void run() { if (!function.isActivityVisible()) { Intent intent = new Intent(MissingWord.this, MissingResult.class); startActivity(intent); finish(); } } }, 5000);

(به علامت "!" قبل از function دقت کنید) با این تابع اگه در اکتیویتی MissingWord باشم بعد از  5 ثانیه به اکتیویتی MissingResult میره. در صورتیکه اگه علامت "!" انجام نمیشه. چرا؟!

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
محمد  11 سال پیش
+1 0

برنامه درست کار میکنه. شما bolean activityVisible رو وقتی تعریف کردی مقدار پیش فرضش برابر false  ه. و وقتی شما مقدار

 function.isActivityVisible()

رو درخواست میکنی همیشه مقدارش برابر false ه. چون هیچ جا تغییرش ندادی.

 
0 0
مرسی محمد آقا، من در حقیقت یادم رفته بود اول اکتیویتی متد رو در onpuse و onresume فراخوانی کنم. (11 سال پیش)

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