Android開發中如何控制界面進行刷新?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
具體方法如下
public class MemoryUtil {
/**
* 是否刷新第一個界面
*/
public boolean isRefreshMain = false;
/**
* 是否刷新第二個界面
*/
public boolean isRefreshSecond = false;
/**
* 是否刷新第三個界面
*/
public boolean isRefreshThree = false;
private static MemoryUtil mMS;
public static MemoryUtil MS = MemoryUtil.getIntance();
private static MemoryUtil getIntance() {
if (mMS == null) mMS = new MemoryUtil();
return mMS;
}
/**
* 清理保存的內存
*/
public static void clearMomery() {
mMS = null;
}
}貼出來這幾個界面的簡單代碼:
MainActivity :
private TextView tv_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
tv_1 = (TextView) findViewById(R.id.tv_1);
}
public void onClick(View view) {
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
@Override
protected void onResume() {
super.onResume();
if (MemoryUtil.MS.isRefreshMain) {
MemoryUtil.MS.isRefreshMain = false;
Toast.makeText(this, "Main is Refresh", Toast.LENGTH_SHORT).show();
}
}SecondActivity:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
findViewById(R.id.tv_2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(SecondActivity.this, ThreeActivity.class);
startActivity(intent);
}
});
}
public void onClick(View view) {
MemoryUtil.MS.isRefreshMain = true;
}
@Override
protected void onResume() {
super.onResume();
if (MemoryUtil.MS.isRefreshSecond) {
MemoryUtil.MS.isRefreshSecond = false;
Toast.makeText(this, "Second is Refresh", Toast.LENGTH_SHORT).show();
}
}ThreeActivity:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_three);
findViewById(R.id.tv_1).setOnClickListener(this);
findViewById(R.id.tv_2).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_1:
MemoryUtil.MS.isRefreshMain = true;
break;
case R.id.tv_2:
MemoryUtil.MS.isRefreshSecond = true;
break;
}
}這種寫法用于控制全局判斷條件還是挺方便的,不過有些利用到緩存數據,或者傳遞參數的地方,這個還是有一定的限制。其他的也是要視情況而定了。
注意要在退出應用的時候,調用 clearMomery()來釋放內存。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。