0

プロセスの進行状況ダイアログが表示されます。しかし、スレッドでnullポインター例外を取得しています。しかし、進行状況ダイアログを削除すると。私はもう例外をとっていません。

私のコードはこんな感じです

public class PlayedActivity extends ListActivity {

private PullToRefreshListView listView;

final Context context = this;

public Handler handler;

Runnable sendNumbers2;

List<On> playedOn;

DatabaseHandlerOn db;

private ProgressDialog m_ProgressDialog;

private ArrayList<On> m_results = null;
private PlayedOnAdapter m_adapter;



    @SuppressLint({ "HandlerLeak", "HandlerLeak" })
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_playedonnumara);


            db = new DatabaseHandlerOnNumara(getApplicationContext());

            m_results = new ArrayList<OnNumara>();

        this.m_adapter = new PlayedOnNumaraAdapter(this, R.layout.playedrowon, m_results);
        this.setListAdapter(this.m_adapter);

        sendNumbers2 = new Runnable() {

            @Override
            public void run() {

                playedOn = db.getAllContacts();      

                for (On on : playedOn) {

                    m_results.add(on);  

                }  


                Collections.reverse(m_results);

                //m_ProgressDialog.dismiss();

                handler.sendEmptyMessage(0);
            }
        };
            Thread thread = new Thread(sendNumbers2,"sendNumbers2");
            thread.start();

            /*m_ProgressDialog = ProgressDialog.show(PlayedOnNumaraActivity.this,
                    "",getString(R.string.PleaseWait), true);

            m_ProgressDialog.setCancelable(true);
        */

            handler = new Handler() {
                @Override
                public void handleMessage(Message msg) {


                    m_adapter.notifyDataSetChanged();


                }

             };

        }
}

}

上記のコードは機能しており、進行状況ダイアログコードがコメント化されても例外はありません

4

1 に答える 1

4

LogCatログがなければ、私は推測することしかできません。

m_ProgressDialogスレッドを開始した後に定義されます。なんで?スレッドを開始する前に定義してください。

また、AsyncTask代わりにこれをお勧めします。詳細については、痛みのないスレッドを参照してください。

于 2012-11-07T00:26:18.683 に答える