Android 是否将getApplicationContext()作为执行runOnUiThread()的活动?

Android 是否将getApplicationContext()作为执行runOnUiThread()的活动?,android,android-context,applicationcontext,Android,Android Context,Applicationcontext,这个代码是对的?我很难去想它 看看这个答案: 您绝对不应该将getApplicationContext()强制转换为Activity,它不能保证工作,这样的编程将导致崩溃。请参见以下答案: 您绝对不应该将getApplicationContext()强制转换为Activity,它不能保证工作,这样的编程将导致崩溃。runOnUiThread()这是活动中的一种方法,因此如果您在活动中,可以避免这种情况:((活动)getApplicationContext()),但是如果您使用的是片段,则需要首先

这个代码是对的?我很难去想它

看看这个答案:

您绝对不应该将getApplicationContext()强制转换为Activity,它不能保证工作,这样的编程将导致崩溃。

请参见以下答案:

您绝对不应该将getApplicationContext()强制转换为Activity,它不能保证工作,这样的编程将导致崩溃。

runOnUiThread()
这是
活动中的一种方法,因此如果您在
活动中,可以避免这种情况:
((活动)getApplicationContext())
,但是如果您使用的是
片段
,则需要首先获取
活动
,然后调用此方法,否则将无法调用它

您应该更改此设置:
((活动)getApplicationContext())

为此:

 ((Activity)getApplicationContext()).runOnUiThread(new Runnable() {
        @Override
        public void run() {

        }
    });
正如Blackbelt在评论中所说,它会给你抛出一个
ClassCastException

runOnUiThread()
这是
活动中的一个方法,因此如果你在
活动中,你可以避免这种情况:
((活动)getApplicationContext())
,但如果你在
片段中,您需要首先获取
活动
,然后调用此方法,否则将无法调用它

您应该更改此设置:
((活动)getApplicationContext())

为此:

 ((Activity)getApplicationContext()).runOnUiThread(new Runnable() {
        @Override
        public void run() {

        }
    });

正如Blackbelt在评论中所说,它会给你抛出一个
ClassCastException

不,它不是,应用程序上下文不是一个活动,我想是的,但我不知道这个代码是否成功执行@tyczjit应该因为ClassCastException而崩溃不,应用程序上下文不是一个活动,我想是的,但我不知道这段代码是否成功执行@tyczjit是否会因ClassCastException而崩溃