小编Min*_*kas的帖子

Android AsyncTask线程限制?

我正在开发一个应用程序,我需要在每次用户登录系统时更新一些信息,我也在手机中使用数据库.对于所有这些操作(更新,从数据库中检索数据等),我使用异步任务.到目前为止,我不明白为什么我不应该使用它们,但最近我经历过,如果我做一些操作,我的一些异步任务只是停止预执行而不跳转到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)

multithreading android android-asynctask

95
推荐指数
3
解决办法
5万
查看次数

如何让SVN忽略文件中的某些代码行?

我和我的朋友正在创建一个程序并使用SVN来共享代码.问题是我们在其中使用谷歌地图,因此我们需要所有人拥有不同的API密钥.现在我们已经在应用程序中注释了我们的API密钥行,但如果有人更改了该类并使用他的API提交,则会很烦人.

有没有办法告诉不要将某些代码行提交给SVN?

java svn ignore

3
推荐指数
1
解决办法
1613
查看次数

listview中的android java.lang.StackOverflowError

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)

android listview

0
推荐指数
1
解决办法
6434
查看次数