-1
以下是我主要活动的代码。我正在使用改造创建项目,但在运行时强行关闭
我使用Retrofit从电影数据库API调用数据,但是当我运行它时,它已安装但强制关闭。我想知道错误的哪个部分,这是我主要活动的代码。
public class MainActivity extends AppCompatActivity {
CustomAdapter adapter;
RecyclerView mrecyclerview;
List<Result> resultList = new ArrayList<>();
RecyclerView.LayoutManager layoutmanager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mrecyclerview= (RecyclerView) findViewById(R.id.recyclerview);
layoutmanager = new LinearLayoutManager(this);
adapter = new CustomAdapter(resultList);
mrecyclerview.setAdapter(adapter);
mrecyclerview.setLayoutManager(new GridLayoutManager(MainActivity.this,2));
new RequestMovie().execute("popular");
}
@Override
public boolean onCreateOptionsMenu (Menu menu){
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()== R.id.action_popular){
new RequestMovie().execute("popular");
} else if (item.getItemId()==R.id.action_top_rated){
new RequestMovie().execute("top_rated");
}
return super.onOptionsItemSelected(item);
}
private class RequestMovie extends AsyncTask<String,Void,Void>{
@Override
protected Void doInBackground(String... params) {
String kategori = params[0];
if (kategori.equals("popular")){
ApiInterface apiInterface = ApiClient.getRetrofit()
.create(ApiInterface.class);
Call <EldarMovie> call = apiInterface.getPopular();
call.enqueue(new Callback<EldarMovie>() {
@Override
public void onResponse(Call<EldarMovie> call, Response<EldarMovie> response) {
EldarMovie movie=response.body();
adapter.setData(movie.getResults());
}
@Override
public void onFailure(Call<EldarMovie> call, Throwable t) {
}
});
}
return null;
}
}
}
从我的应用程序强制关闭的代码有什么不对吗?
首先,你为什么使用asyncTask,改造使用线程本身,你不需要asynctask –
请添加你的崩溃日志 –
添加logcat报告,为什么你使用asyncTask –