android
配置Activity 的启动模式:
在 AndroidManifest.xml 中配置:
<activity android:name=".MainActivity"
android:launchMode="standard">
默认也是 standard 模式,此种模式下,activity 是保存在任务栈中
默认 button 上面的文字都是 大写的,在 android:textAllCaps="false" 可设置小写 。
android:launchMode="singleTop" : 如果在同一个栈里, 如果Activity 处于栈顶, 则只会启动同一个实例,如果不处于栈顶,Activity 会启动多个实例。
在Android模拟器中,将本地电脑的地址映射为10.0.2.2, 所以在 安卓模拟器中访问本地的 web 页面地址是 http://10.0.2.2:port/path
三:通过浏览器链接启动本地Activity:
在Android Studio 中建一个Activity ,名称是 LocalAppAty, 在 AndroidManifest.xml 中给该Activity配置:
<activity android:name=".LocalAppAty">
<intent-filter>
<category android:name="android.intent.category.BROWSABLE"/> //指明该Activity可以被浏览器启动
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="android.intent.action.VIEW"/> //一个浏览器的链接被点击后,会发送该 VIEW 的 action
<data android:scheme="app"/> //app 是协议的名字,浏览器会认定只要是通过这个协议来启动的,都会来启动这个activity。
</intent-filter>
</activity>
</application>
在本地的web页面增加一个超链接:
<a href="app://123">Launch My App123</a>
在模拟器浏览器中访问 web页面,点上面的超链接,就会打开 上面的 activity 。
在Activity 中获取传递的数据:
Uri uri = getIntent().getData(); //getIntent() 获取启动此Activity 的intent对象。
System.out.println(uri); //输出: app://123
System.out.println(uri.getHost()); //输出: 123
四: 在android里,要访问全局信息,需要通过Context 。
五:在多个Activity 之间可以使用Application进行数据共享,Application对同一个应用程序是唯一的。
比如要共享两个Activity 的一个字符串,建立Application 如下:
public class App extends Application { private String textData = "defalut"; //使用TextData保存多个Activity 之间的数据。 public void setTextData(String textData) { this.textData = textData; } public String getTextData() { return textData; } }
在某个Activity 中 保存数据到 App:
((App)getApplicationContext()).setTextData(editText.getText().toString());
在另一个Activity 中可以读取App保存的数据:
textView.setText("共享的数据是:" + ((App)getApplicationContext()).getTextData());
Application 在 Activity 之间创建。