应用程序终止后,AsyncTask不会被免责?

时间:2016-04-25 10:12:30

标签: android android-asynctask

  1. 我想连续进行一些检查。我已经将AsyncTask定义为 如下,

          new AsyncTask<String, Void, String>() {
    
                        @Override
                        protected void onPreExecute() {
                            Log.d(TAG, "onPreExecute()");
                        }
    
                        @Override
                        protected String doInBackground(String... params) {
                            sendData(array);  
                            return null;
                        }
    
                        @Override
                        protected void onPostExecute(String res) {                    }
                    }.execute(userResponse);
    
  2. 但是当我终止应用程序时,线程会停止执行。

1 个答案:

答案 0 :(得分:1)

服务类演示: -

package com.example.My Application;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class MyService extends Service {

   @Override
   public IBinder onBind(Intent arg0) {
      return null;
   }

   @Override
   public int onStartCommand(Intent intent, int flags, int startId) {
      // Let it continue running until it is stopped.
      Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
      return START_STICKY;
   }

   @Override
   public void onDestroy() {
      super.onDestroy();
      Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();
   }
}

活动: -

package com.example.My Application;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.content.Intent;
import android.view.View;

public class MainActivity extends Activity {

   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.activity_main, menu);
      return true;
   }

   // Method to start the service
   public void startService(View view) {
      startService(new Intent(getBaseContext(), MyService.class));
   }

   // Method to stop the service
   public void stopService(View view) {
      stopService(new Intent(getBaseContext(), MyService.class));
   }
}

清单: -

添加<service android:name=".MyService" />