我在我的活动之一,在可运行线程,活动开始时开始。 我想保持线程,即使我的活动运行完毕,我要摧毁线程当同一个活动再次启动。 这是可能的,或者我要尝试新的方式来实现我的目标?
Answer 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;
}
文章来源: How to keep active a runnable thread when an activity is closed but destroy the thread when the activity start again