如何从线程中打开活动

时间:2015-01-03 15:23:34

标签: android multithreading

我有2节课。在ConnectThread结束时,我想打开一个新活动。这个代码我在StackOverflow上找到但它确实有效。谁能告诉我如何解决这个问题。

public class MainActivity extends Activity {
    // some code

}



class ConnectThread extends Thread {

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

    public ConnectThread(BluetoothDevice device) {  
        // some code
    }

    public void run() {  
        // some code

        handler.post(new Runnable() {

            @Override
            public void run() {
                Intent startPostGet = new Intent(MainActivity.this, PostGetActivity.class);                    
                startActivity(startPostGet);
            }
        });   
    }
}

2 个答案:

答案 0 :(得分:0)

认为(因为您没有告诉我们您的错误)您的问题是ContextstartActivity是[{1}}的一种方法,但在您致电Context的情况下,范围在startActivityRunnable范围内,但没有方法{{1} }}。如果我是对的,那么将ConnectThread传递给您的主题并使用startActivity

如果那不是问题,请告诉我你得到的错误,我相信我可以提供帮助。

根据上下文(如果它不是Context上下文,您可能需要使用FLAG_ACTIVITY_NEW_TASK

答案 1 :(得分:0)

class ConnectThread extends Thread {

    Handler handler = new Handler(Looper.getMainLooper());
    Context context;
    public ConnectThread(Context context, BluetoothDevice device) {  
        this.context = context;
        // some code
    }

    public void run() {  
        // some code

        handler.post(new Runnable() {

            @Override
            public void run() {
                Intent startPostGet = new Intent(context, PostGetActivity.class);                    
                context.startActivity(startPostGet);
            }
        });   
    }
}