3
  • Android2.3.6以前およびそれ以前で開発およびテストされたアプリケーションがあります。正常に動作します。
  • Android4.0.4を搭載した新しいMicromaxA110でアプリを実行すると、アクティビティAからアクティビティBを起動し、戻るボタン(またはAからアクティビティC / D / E)を押すとクラッシュし、次のエラーログが表示されますvv

01-10 18:35:44.372:E / AndroidRuntime(18378):致命的な例外:Timer-1 01-10 18:35:44.372:E / AndroidRuntime(18378):java.lang.IllegalStateException:メインスレッドから呼び出す必要がありますプロセス01-1018:35:44.372:E / AndroidRuntime(18378):android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1373)01-10 18:35:44.372:E / AndroidRuntime(18378):at android.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:437)01-10 18:35:44.372:E / AndroidRuntime(18378):android.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:454)01-10 18: 35:44.372:E / AndroidRuntime(18378):android.app.Activity.onBackPressed(Activity.java:2134)01-10 18:35:44.372:E / AndroidRuntime(18378):com.vwap.friends.MygoBack (MyDialog.java:90)01-10 18:35:44.372:E / AndroidRuntime(18378):com.vwap.friends.MyDialog $ 3.run(MyDialog.java:83)01-10 18:35:44.372:E / AndroidRuntime(18378):java.util.Timer $ TimerImpl.run(Timer.java:284) )。

  • 私はまだフラグメントの概念に完全に気づいていません(私はそのできるだけ早く作業する予定です)、そしてエラーはそれと関係があるようです。

どこから始めたらいいのかわからない。フラグメントについて読むことから始めますか、それともこれをすばやく修正してアプリケーションをリリースできますか?

4

3 に答える 3

2

メインスレッドでネットワーク操作を実行しています。ターゲットSDKが11以上の場合、NetworkOnMainThreadExceptionこの動作によりUIがブロックされ、アプリが応答しなくなる可能性があるため、がスローされます。

を使用しAsyncTaskてこれを回避し、にデータをロードすることができますdoInBackground(..)

于 2013-01-10T14:09:08.440 に答える
1

runOnUiThread(実行可能 アクション)を使用してみてください。

または

ハンドラーで試すこともできます:

final Runnable YOURVIEW = new Runnable()
{
    public void run() 
    {
        SampleMethod(); // Put your Method What you want change
        handler.postDelayed(this, timeout);
    }
};

handler.postDelayed(changeView, timeout);
于 2013-01-10T13:31:01.683 に答える
0

私も同様の問題に直面していますがandroid_support_v4.jar、Androidのすべてのバージョンとの互換性のためにファイルをインクルードする必要があると思います。

于 2013-03-29T04:55:03.017 に答える