بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
چرا تابع برعکس کار میکنه؟! (حل شد)
من تو کلاس 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 ه. چون هیچ جا تغییرش ندادی.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .