麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Android > 正文

android不同activity之間共享數據解決方法

2020-04-11 12:41:19
字體:
來源:轉載
供稿:網友
最近做局域網socket連接問題,要在多個activity之間公用一個socket連接,就在網上搜了下資料,感覺還是application方法好用,帖出來分享下!
Android中在不同Activity中傳遞變量,通常使用Intent中Bundle添加變量的操作方法。
保存參數時:
復制代碼 代碼如下:

Intent intent = new Intent();
intent.setClass(A.this, B.class);
Bundle bundle = new Bundle();
bundle.putString("name", "xiaozhu");
intent.putExtras(bundle);
startActivity(intent);

讀取參數:
復制代碼 代碼如下:

Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");
[java] view plaincopy
Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");

不過在多個Activity中經常使用同一變量時,使用Bundle則比較麻煩,每次調用Activity都需要設置一次。
如想在整個應用中使用,在java中一般是使用靜態變量,而在android中有個更優雅的方式是使用Application context。
新建一個類,繼承自Application
復制代碼 代碼如下:

class MyApp extends Application {
private String myState;
public String getState() {
return myState;
}
public void setState(String s) {
myState = s;
}
}

在AndroidManifest.xml的application加個name屬性就可以了,如下面所示:
復制代碼 代碼如下:

<application android:name=".MyApp" android:icon="@drawable/icon" android:label="@string/app_name">

使用時:
復制代碼 代碼如下:

class Blah extends Activity {
@Override
public void onCreate(Bundle b){
...
MyApp appState = ((MyApp)getApplicationContext());
String state = appState.getState();
...
}
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久色伊人 | 国产精品啪一品二区三区粉嫩 | 日日碰日日操 | 媚药按摩痉挛w中文字幕 | 99国产精成人午夜视频一区二区 | 欧美成人激情在线 | 久久人人爽人人爽人人片av免费 | 毛片免费视频观看 | 日韩色视频 | 视频一区免费观看 | 久久免费综合视频 | 九九热精 | 久久美女色视频 | 色播av在线 | 斗破苍穹在线观看免费完整观看 | 午夜视频国产 | 中文字幕国产一区 | 在线成人免费观看www | 毛片一区二区三区四区 | 日日草夜夜 | 在线观看视频毛片 | 毛片av网 | 午夜小视频免费观看 | 羞羞电影在线观看 | 激情网站免费观看 | 久久人人97超碰国产公开结果 | 欧美激情天堂 | 国产成人高清在线观看 | 蜜桃一本色道久久综合亚洲精品冫 | 密室逃脱第一季免费观看完整在线 | 久久超 | free korean xxxxhd | 国产午夜免费 | 午夜影视一区二区 | 久草影音 | 国产影视 | 羞羞视频免费网站含羞草 | 成人一级免费视频 | 黄色国产在线观看 | 精品一区二区在线观看视频 | 国产一级毛片高清 |