java - 如何使用 webview 和 ksoapcall Timer 在 Android 中为 UI 线程设置当前活动
问题描述
我E/Error: java.lang.NullPointerException
在运行 Android Timer 时遇到了问题。
如何设置当前活动以在 UI 线程上运行?
完整的错误消息:
E/Error: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.Activity.runOnUiThread(java.lang.Runnable)' on a null object reference
E/AndroidRuntime: FATAL EXCEPTION: Timer-0
这是我的代码,请参阅下面的评论以了解异常发生的位置:
//set a new Timer
timer = new Timer();
initializeTimerTask(webView);
//schedule the timer, after the first 5000ms the TimerTask will run every 10000ms
timer.schedule(timerTask, 10000, 10000); //
}
});
return root;
}
public void initializeTimerTask(final WebView wv) {
// HERE IS WHERE THE NULL REFERENCE ERROR OCCURS (on context):
final Activity context = this.context;
timerTask = new TimerTask() {
@Override
public void run() {
context.runOnUiThread(new Runnable() {
@Override
public void run() {
wv.reload();
new SoapCall().execute();
}
});
}
};
}
解决方案
你总是可以调用它来在 UI 线程上运行一些东西:
(new Handler(Looper.getMainLooper())).post(new Runnable() {
@Override
public void run() {
}
});
推荐阅读
- reactjs - 如何使用 Gatsby 防止在生产中重定向到家庭?
- firebase - 如何在 React Native 的客户端保存用户响应?
- r - 用于合并拟合模型的 for 循环
- sql-server - 如何处理 SQL Server 的 Linked-Server 错误 18452?
- ios - 动态添加和删除视图 iOS Swift
- css - 代号一 CSS Box-Shadow 不渲染
- python - For Loop Shows All Steps One By One & Not The Final One Directly
- c# - Entity Framework Core 3.0 error - SqlException: Invalid column name
- c# - StackExchange Redis - Net Framework - RedisConnectionException - Serving HashSlot Is Not Reachable
- r - 我无法理解 R 中的“函数”是什么