我想实现以下功能:
- 当我把手机横过来时,我想要启动一个活动。
- 当我再次把它竖过来时,我希望该活动再次关闭。
我不确定你在问什么,因为1和2并不等于你的最终问题。无论如何,你要找的答案是onConfigurationChanged。
如果你已经有一个正在运行的活动,你可以告诉Android在AndroidManfest中,你想处理旋转。然后重写onConfigurationChange来启动一个新的活动。在那个活动中,也告诉android你想处理配置更改,在ondconfigurationchange中,它可以调用finish()返回到上一个活动。
参见: Android Activity onConfigurationCjhanged
将此代码放入您的Android清单中以供活动使用:
<activity android:name=".MyActivity" android:label="@string/appName"
android:configChanges="orientation|keyboard|keyboardHidden">
以下清单代码声明了一个处理屏幕方向变化和键盘可用性变化的活动:
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name">
onConfigurationChanged()
的请求。onConfigurationChanged()
实现检查当前设备的方向:@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
//call new Activity here
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}