나는이 안드로이드의 새로운 것들에 대해 새로운 것을 인정한다. 응용 프로그램을 만들려고 노력하고 있지만 무작위로 강제 닫기 오류가 발생하며 실제로 이유를 모르겠습니다. 내 응용 프로그램에는 많은 액티비티가 있으며, 새 액티비티를 시작할 때 완료되지 않습니다. 나는 (웹 서비스와 직접 이미지 다운로드를 통해) 웹으로부터 데이터를 얻으며 AsyncTask를 많이 사용한다. 대부분 asynctask에서 충돌합니다. 다음은 내가하는 일에 대한 샘플입니다.Android 내 앱이 강제 종료되는 이유가 무엇인가요?
private BackTask backTask;
Activity ctx = this;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.trackslist);
backTask = new BackTask();
backTask.execute();
}
protected class BackTask extends AsyncTask<Context, String, myObject>
{
@Override
protected myObject doInBackground(Context... params)
{
try{
if (hasInternet(ctx)==true)
{
//access the web SERVICE here
//initialize myObject WITH result FROM the web
return myObject
}
else
{
return null
}
}catch(Exception ex){
return null;
}
}
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected void onProgressUpdate(String... values)
{
super.onProgressUpdate(values);
}
@Override
protected void onCancelled()
{
super.onCancelled();
}
@Override
protected void onPostExecute(myObject result)
{
super.onPostExecute(result);
if (result==null || result.isEmpty())
{
//no valid result, show a message
}
else
{
//result valid do something with it
}
}
}
@Override
public void onPause()
{
if (backTask!=null && ! backTask.isCancelled())
{
backTask.cancel(true);
}
super.onPause();
}
public void btnStartOnClick(View target) {
Intent intent = new Intent(this, MyNewActivity.class);
startActivity(intent);
}
활동이 onPause()가되면 작업이 취소됩니다. 나는 try/catch 동안 무슨 일이 일어 났는지 확신하지 못한다. 에러가 나타나면, 나는 null을 반환해야한다. 그러나 나는 여기서 뭔가를 놓친다 고 생각한다. 전에 말했듯이, 내가 다른 활동을하고 있어도 나는 무작위로 힘을 얻는다. 이 동작을하는 앱을 제공 할 수 없어서 정말 실망 스럽습니다. 그래서 내가 뭘 잘못하고 있니?
FC가있는 경우 로그 ('adb shell logcat'명령 줄에서 sdk/tools 디렉토리 또는 Eclipse DDMS보기에서)를 확인해야합니다. 그런 다음 여기에 오류 로그를 붙여 넣으십시오. –
나는 로그를 검사하고 가변적으로 asynctask에서 null 포인터 예외가 발생했다 ... 그 메시지를 받았을 때 나는 다른 활동에있다. – Alin