小编Max*_*Max的帖子

有没有办法使用Retrofit 2为每个请求添加查询参数?

我需要为Retrofit 2.0.0-beta2库的每个请求添加一个查询参数.我找到了Retrofit 1.9的这个解决方案,但是如何添加RequestInterceptor最新的库版本?

我的界面:

@GET("user/{id}")
Call<User> getUser(@Path("id")long id);

@GET("users/")
Call<List<User>> getUser();
Run Code Online (Sandbox Code Playgroud)

客户:

Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .client(CLIENT)  // custom OkHTTP Client
                    .build();
service = retrofit.create(userService.class);
Run Code Online (Sandbox Code Playgroud)

java android retrofit

55
推荐指数
4
解决办法
3万
查看次数

如何使用SearchView,Retrofit和RxJava(RxBindings)实现搜索功能?

当用户键入SearchView窗口小部件时,应用程序应进行API调用(在后台线程中)以从服务器获取搜索结果,并在RecyclerView中显示它们(在UI线程中).

我在我的片段中使用以下代码:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.my_fragment, menu);
    SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();

    SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));

    RxSearchView.queryTextChanges(searchView)
                .debounce(400, TimeUnit.MILLISECONDS)
                .map(CharSequence::toString)
                .switchMap(query -> retrofitService.search(query))
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<List<Item>>() {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e(LOG_TAG, "Error", e);
                    }

                    @Override
                    public void onNext(List<Item> items) {
                        // adapter.addItems(...)
                    }
                });
}
Run Code Online (Sandbox Code Playgroud)

但我得到一个例外:

java.lang.IllegalStateException: Must be called from the main thread. Was: Thread[RxIoScheduler-2,5,main]
at …
Run Code Online (Sandbox Code Playgroud)

java android rx-java retrofit rx-binding

10
推荐指数
1
解决办法
3895
查看次数

动态编程:找到所有成员的乘积等于给定数的子集

我会找到一个解决这个问题的算法.

输入:n个整数和数字k的数组

我们必须从数组中找到一组数字,所有这些数字在set中的乘积等于k

我想,我必须使用动态编程来完成这项任务.但我不知道如何使用它.

algorithm dynamic-programming

5
推荐指数
1
解决办法
1992
查看次数

如何使用Hibernate JPA线程安全进行数据库访问?

我想知道我需要做什么才能访问数据库线程安全。

这是我的Entity类:

@Entity
@Table(name = "students")
@NamedQuery(name = "Student.getAll", query = "SELECT s FROM Student s")
public class Student {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(length = 32, name = "name")
    private String name;

    // ... constructor, getters and setters, toString ...
}
Run Code Online (Sandbox Code Playgroud)

这是DbService类:

public class DbService {

    public EntityManager em = Persistence
                         .createEntityManagerFactory("MyPersistenceUnit")
                         .createEntityManager();

    public Student add(Student student) {
        EntityTransaction tx = em.getTransaction();
        tx.begin();
        Student studentFromDb = em.merge(student);
        tx.commit();
        return studentFromDb;
    }

    public void delete(long id) { …
Run Code Online (Sandbox Code Playgroud)

java mysql multithreading hibernate jpa

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