2016-08-18 6 views
-1

でアプリをクラッシュさせ、その後、私は、データを分析し、通知を表示します。実行スレッド私は、WebサイトからJSONデータをもたらすために、スレッドを作成したアンドロイド

しかし、私はアプリケーションを終了すると、アプリケーションがクラッシュすると再びスレッドを開いた後にスレッドが動作しています。任意のソリューションですか?そしてまた、私はあなたのrun()メソッドではonDestroyライフサイクル

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    Toast.makeText(getApplicationContext(),"Closed",Toast.LENGTH_SHORT).show(); 
    //Configuration configuration = new Configuration(); 
    //condition = 1; 
    test.interrupt(); 
    //test.destroy(); 

} 
+1

スタックトレースとは何ですか?すでに破壊されたアクティビティのUIに触れようとすると、クラッシュします。どのように割り込みを処理するのですか?あなたのスレッドには睡眠がないので、割り込みがうまくいかないと思います。 AsyncTaskまたはIntentService + Broadcastを使用して、非同期の処理を実行してください。 – pawelo

+0

W/dalvikvm:スレッドが捕捉されない例外(グループ= 0x418c0da0)で終了エラーのthats:1 =スレッドID –

答えて

0

メソッドはJVMによって呼び出されますので、アプリケーションを閉じるとonDestroy()呼び出しは保証されません。コードをonDestroy()からonStop()に移動し、アプリを閉じるとonStop()が呼び出されます。

0

AsynTaskはRest Callを使用することをお勧めします。 参照:Dev Forum

スレッドを使用するのが難しい場合は、onPause()で呼び出してください。ここでは、オーバーライドされた他のメソッドと比較して重い作業を行うことができます。

@Override 
public void onPause(){ 
     super.onPause(); 
     test.interrupt(); 
} 

参考:onDestroy(中interupt置くためHow to use

0

あなたは、割り込み機能が実際に呼び出されることを確認する必要がありますが)保証が呼び出されることはありません。試してみてくださいonStop()
またはasyncctaskを使ってjsonデータを取得してください

関連する問題