相关疑难解决方法(0)

在Android中禁用横向模式?

如何在我的Android应用中禁用某些视图的横向模式?

android android-manifest android-orientation

910
推荐指数
18
解决办法
56万
查看次数

如何在Android上禁用方向更改?

我有一个应用程序,我只想在纵向模式下使用,所以我在清单XML中定义了android:screenOrientation ="portrait".这适用于HTC Magic手机(并防止其他手机上的方向更改).

但是当我打开硬件QWERTY键盘(而不是虚拟键盘)时,我的HTC G1手机有问题.我的活动保持纵向模式,但它似乎重新启动并失去所有状态.HTC Hero版本不会发生这种情况.

我的应用程序非常大,因此我不希望它在键盘打开时重新启动并丢失所有状态.我怎么能防止这种情况?

android android-orientation android-activity

282
推荐指数
9
解决办法
24万
查看次数

后台任务,进度对话框,方向更改 - 是否有100%可行的解决方案?

我在后台线程(我使用AsyncTask)下载了一些来自互联网的数据,并在下载时显示进度对话框.方向更改,Activity重新启动,然后我的AsyncTask完成 - 我想关闭progess对话框并启动一个新的Activity.但是调用dismissDialog有时会抛出一个异常(可能是因为Activity被销毁而且还没有启动新的Activity).

处理此类问题的最佳方法是什么(从后台线程更新UI即使用户更改方向也能正常工作)?谷歌有人提供了一些"官方解决方案"吗?

android orientation android-orientation

233
推荐指数
4
解决办法
6万
查看次数

最佳实践:方向更改期间的AsyncTask

AsyncTask 在另一个线程中运行复杂任务是一件好事.

但是当AsyncTask仍在运行时有方向更改或其他配置更改时,将Activity消除并重新启动电流.并且当实例AsyncTask连接到该活动时,它会失败并导致"强制关闭"消息窗口.

所以,我正在寻找某种"最佳实践"来避免这些错误并防止AsyncTask失败.

到目前为止我看到的是:

  • 禁用方向更改.(当然不是你应该如何处理它.)
  • 让任务存活并通过新的活动实例更新它 onRetainNonConfigurationInstance
  • 只需在销毁时取消任务,ActivityActivity在再次创建时重新启动它.
  • 将任务绑定到应用程序类而不是活动实例.
  • "shelf"项目中使用的一些方法(通过onRestoreInstanceState)

一些代码示例:

屏幕旋转期间的Android AsyncTasks,第一部分第二部分

ShelvesActivity.java

你能帮我找到最好的方法来解决问题并且易于实现吗?代码本身也很重要,因为我不知道如何正确解决这个问题.

multithreading android exception

149
推荐指数
3
解决办法
7万
查看次数

当屏幕方向改变时,如何防止布局被重置?

我的示例改编自其中一个兼容性库附带的示例应用程序之一。那是布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="8dp">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="@string/fragment_menu_msg" />

<CheckBox android:id="@+id/menu1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:checked="true"
    android:text="@string/fragment1menu">
</CheckBox>

<CheckBox android:id="@+id/menu2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:checked="true"
    android:text="@string/fragment2menu">
</CheckBox>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这里是一些Java代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_menu);

    ViewGroup layout = (ViewGroup) findViewById(R.id.layout);
    Button btn = new Button(getApplication());
    btn.setId(1);
    btn.setText("Button 1");
    layout.addView(btn);

    mCheckBox1 = (CheckBox) findViewById(R.id.menu1);
    mCheckBox1.setOnClickListener(mClickListener);
}

final OnClickListener mClickListener = new OnClickListener() {
    public void onClick(View v) {

        ViewGroup layout = (ViewGroup) findViewById(R.id.layout);
        Button btn …
Run Code Online (Sandbox Code Playgroud)

java android android-layout android-orientation

5
推荐指数
1
解决办法
2844
查看次数

你如何防止Android屏幕转向侧面?

每当我将设备侧向转动时,我的应用程序中的所有内容也会转动并变得扭曲.如何将其锁定为垂直?

android screen-orientation

1
推荐指数
2
解决办法
5312
查看次数