Application的onCreate()早于Activity的onCreate()初始化.
1.在application内加入android:name=".App",让App类作为全局上下文
2.将两个activity都设置为LAUNCH
manifest配置:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.wjb.myapplication" > <application android:name=".App" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="Act1" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Act" android:label="Act2" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>代码:
package com.example.wjb.myapplication; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import org.w3c.dom.Text; import java.io.Serializable; public class MainActivity extends Activity { TextView tv; EditText et; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv= (TextView) findViewById(R.id.textView1); et= (EditText) findViewById(R.id.editText1); tv.setText("共享数据"+((App)getApplicationContext()).getData()); findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ((App)getApplicationContext()).setData(et.getText().toString()); tv.setText("共享数据"+et.getText().toString()); } }); } }
package com.example.wjb.myapplication; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; /** * Created by wjb on 2015/9/2. */ public class Act extends Activity{ TextView tv; EditText et; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.act); tv= (TextView) findViewById(R.id.textView2); et= (EditText) findViewById(R.id.editText2); tv.setText("共享数据"+((App)getApplicationContext()).getData()); findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ((App)getApplicationContext()).setData(et.getText().toString()); tv.setText("共享数据"+et.getText().toString()); } }); } }
package com.example.wjb.myapplication; import android.app.Application; /** * Created by wjb on 2015/9/4. */ public class App extends Application { public String data = null; public void setData(String data){ this.data=data; } public String getData() { return data; } }