小编and*_*ast的帖子

抛出OutOfMemoryError"pthread_create(1040KB堆栈)失败:再次尝试"使用Volley进行异步发布时

我正在使用Volley将存储在本地数据库中的一些数据发送到服务器.问题是当我有大量条目(例如500)时,我收到此错误:

 java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again
at java.lang.Thread.nativeCreate(Native Method)
at com.android.volley.RequestQueue.start(RequestQueue.java:141)
at com.android.volley.toolbox.Volley.newRequestQueue(Volley.java:66)
at com.android.volley.toolbox.Volley.newRequestQueue(Volley.java:66)
at mypackageName.SomeClass.upload(SomeClass)
at mypackageName.MyClass$MyThred.run(SomeClass.java:387)
Run Code Online (Sandbox Code Playgroud)

这就是我从光标检索数据并进行发布的方法

    private class UploadDataThred extends Thread {

    @Override
    public void run() {
        SomeSQLiteHelper someSQLiteHelper = new SomeSQLiteHelper(context);
        someSQLiteHelper.getWritableDatabase();
        Cursor result = someSQLiteHelper.getAllEvents();
        DataUploader dataUploader = new DataUploader(context);

        while (result.moveToNext()) {
            Build.logError("We're looping!");
            while (!waitingForResponse) {
                try {
                    Thread.sleep(4000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            }
            dataUploader.upload(result.getString(0), false, result.getString(1), result.getString(2), result.getString(3), result.getString(4), result.getString(5), result.getString(6), result.getString(7), result.getString(8));

        }
        someSQLiteHelper.close();
    } …
Run Code Online (Sandbox Code Playgroud)

mobile android android-volley

21
推荐指数
2
解决办法
2万
查看次数

NullPointerException:尝试在空对象引用上调用虚方法'int java.util.ArrayList.size()'

我是新手Fragments和自定义ListView适配器.有人可以帮我一把吗?

我有我的Fragment地方ListView

public class RecordingListFragment extends Fragment implements OnItemClickListener {

    ListView mListView;
    TextView emptyView;
    Button options, delete,edit;
    ArrayList<String> recordings = null;
    RecordingsListAdapter mAdapter;

    public RecordingListFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.recording_list_fragment, container,false);

        options = (Button) rootView.findViewById(R.id.options);
        edit = (Button) rootView.findViewById(R.id.edit);
        delete = (Button) rootView.findViewById(R.id.delete);
        mListView = (ListView) rootView.findViewById(R.id.list);
        emptyView = (TextView) rootView.findViewById(R.id.empty);


        mAdapter = new RecordingsListAdapter(this, recordings);
        mListView.setAdapter(mAdapter);
        mListView.setEmptyView(emptyView);
        mListView.setOnItemClickListener(this);

        return rootView;
    }
} …
Run Code Online (Sandbox Code Playgroud)

mobile android listview adapter android-fragments

10
推荐指数
3
解决办法
13万
查看次数

如何在 SQLite android 中手动执行检查点?

我正在尝试创建 sqlite 数据库的备份,并且想首先刷新数据库中 WAL 文件的内容。

这是我的 SQLiteOpenHelper:

public class MyDBHelper extends SQLiteOpenHelper {

private Context mContext;
private static MyDBHelper mInstance = null;

private MyDBHelper(final Context context, String databaseName) {
    super(new MYDB(context), databaseName, null, DATABASE_VERSION);
    this.mContext = context;
}

@Override
public void onCreate(SQLiteDatabase db) {

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}
   public static MyDBHelper getInstance(Context context) {

    if (mInstance == null) {
        mInstance = new MyDBHelper(context, DATABASE_NAME);
    }
    return mInstance;
}

  private void closeDataBase(Context context) …
Run Code Online (Sandbox Code Playgroud)

sqlite mobile android checkpoint

6
推荐指数
1
解决办法
6019
查看次数

如何在Jenkins中创建具有特定风味的.apk?

我有一个安装了2种风格的android项目.如何通过具有特定风味的Jenkins进行构建?这是我在build.graddle中的风格:

 productFlavors{
flavour 1 {
    applicationId "app_id"
    resValue "string", "app_name", "Flavour 1 app name"
    .......
}

flavour 2 {
    applicationId "app_id2"
    resValue "string", "app_name", "Flavour 2 app name"
    .......

}
Run Code Online (Sandbox Code Playgroud)

}

这就是我在jenkins中构建它的方式: 在此输入图像描述

先感谢您!

mobile android jenkins

4
推荐指数
1
解决办法
2725
查看次数

如何创建没有主键的实体的新实例?

抱歉,这是一个愚蠢的问题。我试图熟悉 Kotlin 并遇到了一个问题。我有一个 kotlin 应用程序,我使用 Room 存储数据。

这是我的实体类:

@Entity
data class Link(@PrimaryKey(autoGenerate = true) var _id: Int,
        @ColumnInfo(name = "link_url") var linkUrl: String?,
        @ColumnInfo(name = "timestamp") var timestamp: Long?)
Run Code Online (Sandbox Code Playgroud)

如何在Link不指定 的情况下创建新实例_id

IE

var link: Link = Link("url", 12334)

先感谢您!

mobile android kotlin

4
推荐指数
1
解决办法
1093
查看次数

使用retrofit2和rx java2发送高容量POSTS时出现OutOfMemoryException

我有一个应用程序与本地数据库(房间)和服务,POSTs所有"事件"来自数据库使用retrofit 2rxjava.当我发送大量POSTs(即1500+)时,应用程序会抛出一个OutOfMemoryException.我认为这是因为每次客户端发送新POST时它都会启动一个新线程.有没有办法阻止retrofit/ rxJava创建这么多线程?或者等待服务器响应是否更好?这是我的代码:

从本地db检索所有事件的类

public class RetreiveDbContent {

private final EventDatabase eventDatabase;

public RetreiveDbContent(EventDatabase eventDatabase) {
    this.eventDatabase = eventDatabase;
}

@Override
public Maybe<List<Event>> eventsList() {

 return eventDatabase.eventDao().getAllEvents()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread());
}
}
Run Code Online (Sandbox Code Playgroud)

接下来,我有一个服务,它通过db事件列表迭代并发布所有这些服务.如果后端发回成功,则从本地数据库中删除该事件.

    private void sendDbContent() {

    mRetreiveDbContent.eventsList()
            .subscribe(new MaybeObserver<List<Event>>() {

        @Override
        public void onSubscribe(Disposable d) {
        }

        @Override
        public void onSuccess(final List<Event> events) {


            Timber.e("Size of list from db " + events.size());
            final CompositeDisposable disposable = new CompositeDisposable(); …
Run Code Online (Sandbox Code Playgroud)

mobile post android

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