1. 程式人生 > >初學安卓開發隨筆之 Menu、toast 用法、活動的四種啟動模式 以及 一個方便的Base活動類使用方法

初學安卓開發隨筆之 Menu、toast 用法、活動的四種啟動模式 以及 一個方便的Base活動類使用方法

pro 一點 cte edi standard oid nal xtend 解釋

Toast

toast 是安卓系統的一種非常棒的提醒方式

首先定義一個彈出Toast的觸發點,比如可以是按鈕之類

其中 Toast.LENGTH_SHORT是指顯示時長 還有一個內置變量為Toast.LENGTH_LONG可以選用。

 Toast.makeText(FirstActivity.this, "You clicked Button 1", Toast.LENGTH_SHORT).show();

Menu

首先 在res目錄下新建一個menu文件夾 創建一個main.xml 類似於下面的代碼

<menu xmlns:android="http://schemas.android.com/apk/res/android"
> <item android:id="@+id/add_item" android:title="設置"/> <item android:id="@+id/remove_item" android:title="幫助"/> </menu>

其中 item是具體的菜單項 id為標識符 title為名稱

然後在活動中重寫onCreateOptionsMenu()方法 (快捷鍵 Ctrl+O)

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        
return true; } inflate 接受倆參數 第一個是資源文件 第二個是添加到哪一個menu對象中 。返回值決定是否能顯示!!!
  定義菜單響應事件 重寫onOptionsItemSelected()方法
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.add_item: Toast.makeText(this, "You Click 設置", Toast.LENGTH_SHORT).show();
break; case R.id.remove_item: Toast.makeText(this, "You Click 幫助", Toast.LENGTH_SHORT).show(); break; default: } return true; }

活動的四種啟動模式

standard、singleTop、singleTask和singleInstance 這四種

修改方法是在AndroidManifest.xml中給對應活動標簽指定android:launchMode即可

standard   是默認的活動啟動模式  (補充一點 Android 用返回棧管理活動) 即 不管是夠以及在返回棧中存在的或者 啟動都會創建該活動的一個實例

singleTop  對應於standard模式 對如果在返回棧中存在的活動就不再創建新的活動實例,直接使用它。(使用它可以很好的解決重復創建棧頂活動的問題哦!!!

singleTask  可以使得活動在整個應用程序的上下文中只存在一個實例。 在發現並直接使用已存在的實例活動時,會把這個活動之上的所有活動全部出棧!!!

singleInstance  特殊 + 復雜

這個模式下的活動 會啟動一個新的返回棧來管理活動 這個模式是為了方便共享活動實例。 如下圖解釋 方便別的程序訪問活動SecondActivity

技術分享

Base活動類使用方法

通過增寫一個活動的公共父類來簡化代碼

public class BaseActivity extends AppCompatActivity {
    private static final String TAG = "BaseActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG, getClass().getSimpleName());  
ActivityCollector.addActivity(
this);
    //因為活動管理器中用一個LIst進行暫存活動的,所以就可以用addActivity()將當前正在創建的活動添加到活動管理器裏
    //然後只需要在onDestroy方法裏調用removeActivity()方法即可
}
protected void onDestory(){ super.onDestroy(); ActivityCollector.removeActivity(this);    //這樣以後想在哪退出程序只需調用ActivityCollector.finishALl()即可 } }

PS

  在銷毀所有活動後可以再加上殺掉當前進程的代碼

  android.os.Process.killProcess(android.os.Process.myPid());  

  killProcess()可以殺掉一個進程 接受一個進程id參數, 而且只能用於殺掉當前進程,無法殺掉其他進程。

初學安卓開發隨筆之 Menu、toast 用法、活動的四種啟動模式 以及 一個方便的Base活動類使用方法