iT邦幫忙

0

android activity

  • 分享至 

  • xImage
  •  

first activity如果是自己創建的要註冊 >
androidmanifest.xml

 <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

創建menu活動>

<item 
        android:id="@+id/add_item
        android:title="add"
    />
    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.main,menu);
        return true;
    }
        public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()){
          case R.id.add_item:
                              Toast.makeText(this,"uclickadd",Toast.LENGTH_LONG).show();
              break;
          case R.id.remove_item:
              Toast.makeText(this,"u click remove",Toast.LENGTH_LONG).show();
              break;
          default:
      }
      return true;
    }
銷毀menu活動

public void onClick(View v){
finish();
}



///// 顯示intent
創建 secondactivity 然後 <activy></activity> 
裡面 <intent-filter> 不用配置

啟動Intent (Context packageContext 啟動活動上下文 ,Class <?>cls 指定想起動目標活動) 
Intent intent = new Intent(first.this,second.class);
startActivity(intent);

///隱式intent
有action/category

<action android:name="com.example.activitytest.ACTION_START" />

                <category android:name="android.intent.category.DEFAULT" /> //默認的
                <category android:name="com.example.activitytest.MY_CATEGORY" />

Intent intent=new Intent("com.example.activity.Action_start");
startActivity(intent);
intent.addCategory("com.example.activitytest.MY_CATEGORY");

      Intent intent =new Intent(Intent.ACTION_VIEW); //內置的
      intent.setData(Uri.parse("http://www.baidu.com"));
                              "tel:10086" //電話
      可以在 <INTENT-FLITER>
      <data android:scheme:"http"/> 篩選 
      android:scheme / android:host / port / path / mimeType用於指定處理的數據類型

向下一個活動傳遞數據
--first


String data="i love u";
Intent intent=new Intent(first.this,second.class); intent.putExtra("extra_data",data); startActivity(intent);

--second 

Intent intent= getIntent();
String data=intent.getStringExtra("extra_data");
Log.d("sencond",data);


 返回數據給上一個活動
 first
    ```
 Intent intent=new Intent(first.this,second.class);    
     startActivityForResult(intent,1);

second
```

 Button button2=(Button) findViewById(R.id.button_2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent();
                intent.putExtra("data_return","i hate u");
                setResult(+); //第一個參數是返回結果的 第二個參數把有數據的intent傳回去
                finish();
            }
        });
--first
//按鈕案返回時取得結果
  @Override
  //檢查requestcode判斷數據來源確定數據是second傳的 在通過result判斷是否成功
  public void onActivityResult(int requestCode,int resultCode,Intent data) {
    switch (requestCode){
        case 1:
            if (requestCode == RESULT_OK){
                String returnedData=data.getStringExtra("data_return");
                Log.d("first",returnedData);
            }
            break;
            default:
    }
--back鍵也能返回數據
public void onBackPressed(){
Intent intent=new Intent();
intent.putExtra("extra_data",data);   
setResult(RESULT_OK,intent);
finish();
}
**活動生命週期**
1.運行
2.暫停 不在線頂但是仍可見 EX 對話框(只占螢幕一部分)
3.停止 完全不可見 內存有可能被回收
4.銷毀 回收狀態
onCreate() 第一次創建調用 EX 初始化 載入布局-> onDestroy 銷毀之前調用 *完整生存期
onStart() 不可見>可見 onStop()完全不可見 ->可見生存期
onResume() 用戶進行交互時用 要在頂部 onPause() 重新啟動/恢復時調用
活動是運行狀態的 可和用戶交互 大部分情況下為前台生存期

創建模式
 -改變模式 <ACTIVITY  android:launchMode="***" />
    STANDARD :會重新創建新活動 (默認模式)
    singleTOP:創建活動會與頂端活動不重複
    singleTask:與所有活動不重複
    singleInstance:返回線會不一樣 在加那個模式跳到的下一個
 -killProcess殺掉進程(android.os.Process,myPid());

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言