android 서로 다른 activity 간 공유 데이터 해결 방법

1851 단어 androidactivity
최근 에 랜 socket 연결 문 제 를 만 들 었 습 니 다.여러 activity 사이 에 하나의 socket 연결 을 공용 하려 면 인터넷 에서 자 료 를 찾 아 보 았 습 니 다.애플 리 케 이 션 방법 이 좋 을 것 같 습 니 다.댓 글로 공유 하 세 요!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 를 호출 할 때마다 설정 해 야 합 니 다.전체 응용 프로그램 에서 사용 하려 면 자바 에 서 는 정적 변 수 를 사용 하고 안 드 로 이 드 에 서 는 애플 리 케 이 션 context 를 사용 하 는 것 이 우아 합 니 다.애플 리 케 이 션
 
class MyApp extends Application {
private String myState;
public String getState() {
return myState;
}
public void setState(String s) {
myState = s;
}
}
에서 AndroidManifest.xml 의 애플 리 케 이 션 에 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();
...
}
}

좋은 웹페이지 즐겨찾기