在开发android的应用中,有时候需要限制横竖屏切换。
只需要在AndroidManifest.xml文件中加入android:screenOrientation属性限制。
android:screenOrientation="landscape"是限制此页面横屏显示,
android:screenOrientation="portrait"是限制此页面数竖屏显示。
一.显示intent和隐示intent的区别
- 1:都是用来在一个activity中启动另外一个activity
- 2:显示Intent直接指明要启动activity的定义,即activity.class;隐式intent通过在androidmanifest.xml配置action来隐式的启动activity
- 3:显示intent不可以跨应用启动activity;隐式intent是可以跨应用启动的
- 4:如果想隐式intent也不可以被跨应用启动只需要在androidmanifest.xml对应的activity中配置android:exported=”false”即可!
- 5:使用隐式intent启动activity的时候如果有两个action配置是一样的,那么启动的时候系统就会弹出对话框让你选择去启动哪一个,那么怎么过滤掉自己不想启动的哪一个呢,方法是在Androidmanifest.xml中的对应的activity配置中配置名字随便起,然后在new Intent action参数后再传入另外一个参数Uri.parse(“app://hello”) app冒号后面跟的是参数,随便写,这样就可以对同一个actionj进行区分了!
1.每个intent中只能指定一个action, 但却能指定多个catagory.
2.<action/>唯一尽量使用action标识
1.显示intent
// 3.显示intent实现活动跳转(重点), 不需要更改Manifest配置
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(FirstActivity.this, SecondActivity.class); //跳转到SecondActivity.class的布局页面
startActivity(intent);
}
});
2.隐示intent
- Manifest配置
<!--防止隐示intent 跨应用访问 android:exported="false"-->
<activity android:name=".SecondActivity" android:label="第二页" android:exported="false">
<intent-filter>
<action android:name="android.intent.action.SecondActivity"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
- 逻辑代码
// 4.隐示intent, 需要Manifest配置,使用action标识
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent("android.intent.action.SecondActivity");
startActivity(intent);
}
});