getApplicationContext()作为执行runOnUiThread()的活动?

时间:2016-03-15 14:35:47

标签: android android-context applicationcontext

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

        }
    });

这段代码是对的?我很难想到它!

2 个答案:

答案 0 :(得分:1)

请参阅此答案:https://stackoverflow.com/a/6760019/923441

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

答案 1 :(得分:1)

runOnUiThread()来自Activity的方法,所以如果你在Activity,你可以避免这种情况:((Activity)getApplicationContext()),但如果你在Fragment上1}},您需要先获得Activity的第一个,然后调用此方法,否则您将无法调用它。

您应该更改此内容:((Activity)getApplicationContext())

到此:

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

    }
});

正如Blackbelt在评论中所说的那样,它会给你一个ClassCastException