知晓当前是在哪一个活动
public class BaseActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d("BaseActivity", getClass().getSimpleName()); } }
把所有的Activity改成继承BaseActivity
随时随地退出程序
新建一个ActivityCollector 类作为活动管理器,代码如下所示:
public class ActivityCollector { public static List<Activity> activities = new ArrayList<Activity>(); public static void addActivity(Activity activity) { activities.add(activity); } public static void removeActivity(Activity activity) { activities.remove(activity); } public static void finishAll() { for (Activity activity : activities) { if (!activity.isFinishing()) { activity.finish(); } } } }
然后再BaseActivity里添加:
onCreate()方法里添加ActivityCollector.addActivity(this);
onDestroy()方法里添加ActivityCollector.removeActivity(this);
从此以后,不管你想在什么地方退出程序,只需要调用ActivityCollector.finishAll()方法
启动活动的最佳写法:
修改SecondActivity 中的代码,如下所示:
public class SecondActivity extends BaseActivity { public static void actionStart(Context context, String data1, String data2) { Intent intent = new Intent(context, SecondActivity.class); intent.putExtra("param1", data1); intent.putExtra("param2", data2); context.startActivity(intent); } …… }
现在只需要一行代码就可以启动SecondActivity
SecondActivity.actionStart(FirstActivity.this, "data1", "data2");
UI控件的显示、透明、隐藏
android:visibility进行指定,可选值有三种,visible、invisible 和gone。visible 表示控件是可见的,这个值是默认值,不指定android:visibility 时,控件都是可见的。invisible 表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了。gone 则表示控件不仅不可见,而且不再占用任何屏幕空间。我们还可以通过代码来设置控件的可见性,使用的是setVisibility()方法,可以传入View.VISIBLE、View.INVISIBLE 和View.GONE 三种值。