我的一个活动中有一个可运行的线程,该线程在活动开始时开始。即使我的活动完成,我也想保持线程运行,并且我想在相同的活动再次开始时销毁线程。这是可能的还是我必须尝试新的方法来实现我的目标?
user1871133
问问题
903 次
1 回答
1
我建议使用服务。只要你想让他们活多久,他们就活多久
public class MyService extends Service {
private static final String TAG = "MyService";
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
Log.d(TAG, "onCreate");
}
@Override
public void onDestroy() {
Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
//stop thread
}
@Override
public void onStart(Intent intent, int startid) {
Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
Log.d(TAG, "onStart");
//start thread (again)
}
}
您必须在清单中声明您的服务
<service android:enabled="true" android:name=".MyService" />
启动和停止您的服务
startService(new Intent(this, MyService.class));
stopService(new Intent(this, MyService.class));
如果您想检查您的服务是否正在运行,您可以使用此代码
private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (MyService.class.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
于 2012-12-02T23:00:07.090 回答