如何保持活跃,运行的线程,当活动被关闭,但破坏线程时活动再次启动(How to keep activ

2019-10-30 19:09发布

我在我的活动之一,在可运行线程,活动开始时开始。 我想保持线程,即使我的活动运行完毕,我要摧毁线程当同一个活动再次启动。 这是可能的,或者我要尝试新的方式来实现我的目标?

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