ReceiverRestrictedContext无法强制转换为android.app.Activity连接更改[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在尝试在重新建立网络连接后将一些信息上传到服务器。但是一旦我到达这一点,应用程序的流程就会中断并停止上传过程,我会得到标题上显示的异常。

应该怎么做:启动线程,上传文件并继续而不破坏流程。

发生了什么:进程尝试启动,中断并且不上传任何文件。

public static void responseJson(JSONObject response) throws JSONException {
    try {
        JSONObject jsonResponse = response.getJSONObject("quote");
        int idServer = jsonResponse.getInt("id");

        dbAgenda.updateAgenda(idServer, id_local);

        ((Activity)context).runOnUiThread(new Runnable() {
            @Override
            public void run() {
                submitAgenda();
            }
        });

    } catch (Exception e) {
        e.printStackTrace();
    }
}

这是我得到的错误:

02-26 09:20:38.588 13250-13959/www.newapp.com.co E/AsyncHttpResponseHandler: User-space exception detected!
java.lang.ClassCastException: android.app.ReceiverRestrictedContext cannot be cast to android.app.Activity
    at www.newapp.com.co.utils.SYNC.SyncCalendar.responseJson(SyncCalendar.java:131)
    at www.newapp.com.co.json.JSONServices.onSuccess(JSONServices.java:178)
    at www.newapp.com.co.services.HttpClient$1.onSuccess(HttpClient.java:218)
    at com.loopj.android.http.JsonHttpResponseHandler$1$1.run(JsonHttpResponseHandler.java:153)
    at com.loopj.android.http.AsyncHttpResponseHandler.postRunnable(AsyncHttpResponseHandler.java:426)
    at com.loopj.android.http.JsonHttpResponseHandler$1.run(JsonHttpResponseHandler.java:146)
    at com.loopj.android.http.JsonHttpResponseHandler.onSuccess(JsonHttpResponseHandler.java:182)
    at com.loopj.android.http.AsyncHttpResponseHandler.handleMessage(AsyncHttpResponseHandler.java:360)
    at com.loopj.android.http.AsyncHttpResponseHandler.sendMessage(AsyncHttpResponseHandler.java:410)
    at com.loopj.android.http.AsyncHttpResponseHandler.sendSuccessMessage(AsyncHttpResponseHandler.java:323)
    at com.loopj.android.http.AsyncHttpResponseHandler.sendResponseMessage(AsyncHttpResponseHandler.java:457)
    at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:162)
    at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:179)
    at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:108)
    at com.loopj.android.http.SyncHttpClient.sendRequest(SyncHttpClient.java:95)
    at com.loopj.android.http.AsyncHttpClient.post(AsyncHttpClient.java:978)
    at www.newapp.com.co.services.HttpClient.httpRequestJson(HttpClient.java:133)
    at www.newapp.com.co.json.JSONServices.submitInsert(JSONServices.java:85)
    at www.newapp.com.co.json.JSONServices.access$000(JSONServices.java:30)
    at www.newapp.com.co.json.JSONServices$1.run(JSONServices.java:56)
    at java.lang.Thread.run(Thread.java:841)

02-26 09:20:38.648 13250-13959/www.newapp.com.co E/AsyncHttpRequest: Unhandled exception origin cause
java.lang.RuntimeException: java.lang.ClassCastException: android.app.ReceiverRestrictedContext cannot be cast to android.app.Activity
    at com.loopj.android.http.AsyncHttpResponseHandler.onUserException(AsyncHttpResponseHandler.java:313)
    at com.loopj.android.http.AsyncHttpResponseHandler.handleMessage(AsyncHttpResponseHandler.java:404)
    at com.loopj.android.http.AsyncHttpResponseHandler.sendMessage(AsyncHttpResponseHandler.java:410)
    at com.loopj.android.http.AsyncHttpResponseHandler.sendSuccessMessage(AsyncHttpResponseHandler.java:323)
    at com.loopj.android.http.AsyncHttpResponseHandler.sendResponseMessage(AsyncHttpResponseHandler.java:457)
    at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:162)
    at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:179)
    at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:108)
    at com.loopj.android.http.SyncHttpClient.sendRequest(SyncHttpClient.java:95)
    at com.loopj.android.http.AsyncHttpClient.post(AsyncHttpClient.java:978)
    at www.newapp.com.co.services.HttpClient.httpRequestJson(HttpClient.java:133)
    at www.newapp.com.co.json.JSONServices.submitInsert(JSONServices.java:85)
    at www.newapp.com.co.json.JSONServices.access$000(JSONServices.java:30)
    at www.newapp.com.co.json.JSONServices$1.run(JSONServices.java:56)
    at java.lang.Thread.run(Thread.java:841)

 Caused by: java.lang.ClassCastException: android.app.ReceiverRestrictedContext cannot be cast to android.app.Activity
    at www.newapp.com.co.utils.SYNC.SyncCalendar.responseJson(SyncCalendar.java:131)
    at www.newapp.com.co.json.JSONServices.onSuccess(JSONServices.java:178)
    at www.newapp.com.co.services.HttpClient$1.onSuccess(HttpClient.java:218)
    at com.loopj.android.http.JsonHttpResponseHandler$1$1.run(JsonHttpResponseHandler.java:153)
    at com.loopj.android.http.AsyncHttpResponseHandler.postRunnable(AsyncHttpResponseHandler.java:426)
    at com.loopj.android.http.JsonHttpResponseHandler$1.run(JsonHttpResponseHandler.java:146)
    at com.loopj.android.http.JsonHttpResponseHandler.onSuccess(JsonHttpResponseHandler.java:182)
    at com.loopj.android.http.AsyncHttpResponseHandler.handleMessage(AsyncHttpResponseHandler.java:360)
    at com.loopj.android.http.AsyncHttpResponseHandler.sendMessage(AsyncHttpResponseHandler.java:410) 
    at com.loopj.android.http.AsyncHttpResponseHandler.sendSuccessMessage(AsyncHttpResponseHandler.java:323) 
    at com.loopj.android.http.AsyncHttpResponseHandler.sendResponseMessage(AsyncHttpResponseHandler.java:457) 
    at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:162) 
    at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:179) 
    at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:108) 
    at com.loopj.android.http.SyncHttpClient.sendRequest(SyncHttpClient.java:95) 
    at com.loopj.android.http.AsyncHttpClient.post(AsyncHttpClient.java:978) 
    at www.newapp.com.co.services.HttpClient.httpRequestJson(HttpClient.java:133) 
    at www.newapp.com.co.json.JSONServices.submitInsert(JSONServices.java:85) 
    at www.newapp.com.co.json.JSONServices.access$000(JSONServices.java:30) 
    at www.newapp.com.co.json.JSONServices$1.run(JSONServices.java:56) 
    at java.lang.Thread.run(Thread.java:841) 

我相信最后一部分是主要的culprid,但我无法弄清楚如何解决它。

android
1个回答
0
投票

这是一个BroadcastReceiver?你不能把ReceiverRestrictedContext施放到Activity这一行 - > ((Activity)context)。这可能是this question here的重复。

© www.soinside.com 2019 - 2024. All rights reserved.