我使用了以下代码及其工作原理,但想知道这是否真的是一种有效的方法呢?
public class BackgroundService extends Service
{
Runner runner;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(this,"Service created ...", Toast.LENGTH_LONG).show();
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service destroyed ...", Toast.LENGTH_LONG).show();
//stopSelf();
}
@Override
public int onStartCommand (Intent intent, int flags, int startId){
try{
Toast.makeText(this,"Service started ...", Toast.LENGTH_LONG).show();
runner = new Runner();
runner.start();
}catch(Exception localException){}
return START_REDELIVER_INTENT;
}
}
public class Runner extends Thread {
@Override
public void run(){
try
{
//code to run actual task
}catch(Exception localException){}
}
}
答案 0 :(得分:1)
这是如何在android中进行一些后台处理的方法之一。 还有一些像
正确的方法来做android中的async东西,取决于要做的工作。如果你经常做一些事情,那么就像你一样简单地创建服务。
如果你想运行更小的一次拍摄,你可以创建Handler或AsyncTask。
就像我说的那样取决于你想在后台做的工作。