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()来释放内存。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。