如何从线程中打开 activity

How to open an activity from a thread

我有 2 个 类。在 ConnectThread 的末尾我想打开一个新的 activity。我在 Whosebug 上找到的这段代码,但它不起作用。谁能告诉我如何解决这个问题。

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);
            }
        });   
    }
}

认为 (因为你没有告诉我们你的错误)你的问题是 ContextstartActivityContext 的一个方法,但是在你调用 startActivity 的地方,作用域在 RunnableConnectThread 之内,它没有方法 [=11] =].如果我是对的,那么将 Context 传递给您的线程并使用 myContext.startActivity().

如果这不是问题所在,请告诉我您遇到的错误,我相信我可以提供帮助。

您可能需要根据上下文使用 FLAG_ACTIVITY_NEW_TASK(如果不是 Activity 上下文。

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);
            }
        });   
    }
}