[英]android - static var is killed but activity is brought to foreground
假設我有2個活動A和B。我從A轉到B,然后按“主頁”按鈕。 有一些靜態變量在A中初始化。
幾個小時或幾天之后,或者直到活動被終止,我從“最近”按鈕再次啟動該應用程序。 活動B成為該應用程序的新入口點,但是靜態var不再擁有任何值,除非我重定向回A,否則它沒有初始化的機會。
我launchMode
兩個活動是singleTop
。 不知道這是否重要,但是我嘗試了singleTop
, singleInstance
和standard
都不起作用。 我想我的預期行為是入口點始終是A或任何其他活動(如果未被殺死),當然靜態var仍然保持價值。
謝謝!
問題可能是因為當您的應用程序在后台運行時,Android操作系統必須清除內存才能為其他應用程序釋放資源
static
變量屬於原始數據類型。 Intent
傳遞給ActivityB
。 ActivityB
,您仍然可以獲取傳遞的變量。 將變量傳遞給ActivityB
而不是靜態變量。
Intent intent = new Intent();
intent.putExtras("Id", 1);
intent.putExtras("Name", "kevz");
startActivity(intent, ActivityB.class);
現在在ActivityB
獲取傳遞的變量值-
int Id = getIntent().getIntExtra("Id", -1); // -1 is default value.
String Name = getIntent().getStringExtra("Name", "unknown"); // unknown is default value
如果靜態變量不起作用,則可以嘗試對變量使用getter()
和setter()
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.