2016-11-13 4 views
-1

私はアクティビティAとBを持っています 今、私は別のスレッドで処理されるいくつかの "イベント"を持っています。 このアプリケーションでは、Bを起動してからAを破棄する必要があります。Android、Handler.post関数からfinish()を呼び出す

スレッドでは、UIスレッドにstuffを送信するハンドラがあります。

Handler hexample = new Handler(Looper.getMainLooper()); 

さて、スイッチングは問題ありませんが、仕上がりを呼び出す()メソッドは次のとおりです。

hexample.post(new Runnable() { 
    @Override 
    public void run() { 
    Intent intent = new Intent(getApplicationContext(),LobbyActivity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
    ((Activity)getApplicationContext()).finish(); 
    } 
}); 

私のクラスとして、このdoesntの仕事は、私はそれを作るにはどうすればよいandroid.app.Activity にキャストするカント作業?

答えて

0

ちょうどfinish()は、キャストする必要はありません。その状況で別のアクティビティの終了を呼び出すことはできません。シナリオは、アクティビティAのユーザでBを開始し、次にBを開始してAを終了したい場合にのみ機能します。

+0

ApplicationContextをインテントで参照しないでください。アクティビティやサービスで作業していない場合、LocateActivity.classのような共鳴可能なコンテキストを与えます。このクラスを構築するときにActivityからContextを渡します。 –

+0

アプリケーションレベルから作業しています。助けてくれてありがとう! – NotMeForSure

関連する問題