我正在开发一个应用程序,我需要在每次用户登录系统时更新一些信息,我也在手机中使用数据库.对于所有这些操作(更新,从数据库中检索数据等),我使用异步任务.到目前为止,我不明白为什么我不应该使用它们,但最近我经历过,如果我做一些操作,我的一些异步任务只是停止预执行而不跳转到doInBackground.这样做太奇怪了,所以我开发了另一个简单的应用程序,只是为了检查什么是错误的.奇怪的是,当总异步任务的计数达到5时,我得到相同的行为,第6个在预执行时停止.
android是否在Activity/App上有asyncTasks的限制?或者它只是一些错误,应该报告?有没有人遇到同样的问题,也许找到了解决方法?
这是代码:
只需创建其中5个线程即可在后台运行:
private class LongAsync extends AsyncTask<String, Void, String>
{
@Override
protected void onPreExecute()
{
Log.d("TestBug","onPreExecute");
isRunning = true;
}
@Override
protected String doInBackground(String... params)
{
Log.d("TestBug","doInBackground");
while (isRunning)
{
}
return null;
}
@Override
protected void onPostExecute(String result)
{
Log.d("TestBug","onPostExecute");
}
}
Run Code Online (Sandbox Code Playgroud)
然后创建这个线程.它将进入preExecute并挂起(它不会进入doInBackground).
private class TestBug extends AsyncTask<String, Void, String>
{
@Override
protected void onPreExecute()
{
Log.d("TestBug","onPreExecute");
waiting = new ProgressDialog(TestActivity.this);
waiting.setMessage("Loading data");
waiting.setIndeterminate(true);
waiting.setCancelable(true);
waiting.show();
}
@Override
protected String doInBackground(String... params)
{
Log.d("TestBug","doInBackground");
return null;
} …Run Code Online (Sandbox Code Playgroud) 我和我的朋友正在创建一个程序并使用SVN来共享代码.问题是我们在其中使用谷歌地图,因此我们需要所有人拥有不同的API密钥.现在我们已经在应用程序中注释了我们的API密钥行,但如果有人更改了该类并使用他的API提交,则会很烦人.
有没有办法告诉不要将某些代码行提交给SVN?
我android java.lang.StackOverflowError在listview中加载条目时收到一个奇怪的错误.奇怪的是,它总是在第三次加载我的列表视图时发生.
背后的想法是我有一个有很多标记(商店)的地图.用户可以单击菜单 - >显示商店列表,然后获取填充列表.然后,他可以按下列表中的特定商店,然后他将获得相同的地图,但商店的重点是.然后他可以再次执行相同的操作:菜单 - >显示商店列表.
实际上有某种循环,但是用户决定自己是否想要进行回合(地图 - >列表 - >地图......)或者他可以(通过按下引脚)只是出去...
前两次一切正常......第三次我要加载列表,应用程序崩溃.
日志:
02-15 13:10:00.632: E/AndroidRuntime(23826): FATAL EXCEPTION: main
02-15 13:10:00.632: E/AndroidRuntime(23826): java.lang.StackOverflowError
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.view.View.draw(View.java:6880)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.widget.AbsListView.dispatchDraw(AbsListView.java:1480)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.widget.ListView.dispatchDraw(ListView.java:3138)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.view.View.draw(View.java:6986)
Run Code Online (Sandbox Code Playgroud)
我已经阅读了很多帖子,这个错误主要出现在你有无限循环时.这是某种Android解释,当你从一个活动转到另一个活动几次时,它认为你有无限循环?我没有其他想法为什么会发生这种情况.(还有一件事要添加,这两个活动在同一个标签下,我的意思是我使用相同的标签,但更改内容).
更改内容的代码:
Tabs s = (Tabs) getParent();
Intent myIntent = new Intent(getApplicationContext(), Map.class);
myIntent.putExtra("playgroundID", …Run Code Online (Sandbox Code Playgroud)