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 之间创建。
原文地址:https://www.cnblogs.com/z360519549/p/5797793.html