java - DialogFragment.show 挂起应用程序

标签 java android android-fragments

我有一个带有按钮的 fragment 。单击按钮后,将执行以下代码:

@Override
    public void onClick(View clickedView) {
        switch(clickedView.getId()) {
            case R.id.btnTest:
                FragmentManager fm = getSherlockActivity().getSupportFragmentManager();
                MyDialog dialog = new MyDialog();
                dialog.show(fm, "TaskDeadlineDialog");
                break;
        }
    }

我的对话 fragment 如下:

public class MyDialog extends DialogFragment 
{
    public MyDialog() {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedBundleInstance) {
        View currentView = inflater.inflate(R.layout.my_dialog_layout, parent);
        System.out.println("Inflated!");
        return currentView;
    }

}

发生的情况是,对话框不显示,应用程序停止响应。我正在使用 CM9 ICS 在三星 SII 上对此进行测试。

编辑:Logcat 也没有显示任何内容。

12-21 16:05:16.970: I/System.out(15753): debugger has settled (1304)
12-21 16:05:18.250: D/dalvikvm(15753): VFY: replacing opcode 0x6f at 0x0006
12-21 16:05:18.445: I/System.out(15753): Got ID: 1
12-21 16:05:20.430: I/System.out(15753): List position: 0
12-21 16:05:23.225: I/System.out(15753): Inflated!
12-21 16:05:38.510: D/dalvikvm(15753): GC_CONCURRENT freed 2265K, 41% free 4867K/8131K, paused 3ms+6ms
12-21 16:05:51.895: D/dalvikvm(15753): GC_CONCURRENT freed 1797K, 42% free 4787K/8131K, paused 2ms+2ms

..etc

我做错了什么?

最佳答案

我能想到的是,您可能出于某种原因阻塞了 ui 线程。如果您使用同步操作或线程,我想这是一个很常见的错误。

再看看您的代码并逐步执行该过程。您等待应用再次开始响应的时间越长,Logcat 也应该输出超时调度。

编辑;此答案可能对您有所帮助:https://stackoverflow.com/a/5047865/559157

关于java - DialogFragment.show 挂起应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13990802/

相关文章:

java - 列删除会增加 Cassandra 中的读取延迟吗?

android - 在 Realm 中执行简单的迁移

android - 填充布局时如何使用适配器

android - Android JetPack 的共享 ViewModel 生命周期

java - 通过 netbeans 编辑自动生成的代码

java - JFace 和 FieldEditor

java - 在 Google App Engine 上生成统计信息

android - 使用系统应用程序或外部浏览器打开 Youtube 链接

android - 如何在 EventBus 中使用 Call Type

java - 使用 MediaPlayer 在 fragment 内播放声音