我想创建一个小应用程序,它在后台记录数据。所以我尝试使用绑定服务。这工作正常,但如果我关闭应用程序,服务也会停止 所以,我的问题是:用即时服务执行此操作是一种好方法吗? 当app关闭时我怎样才能让服务在后台运行(我想在启动后启动它)?
答案 0 :(得分:0)
在系统应用程序上查看this link。
如果该应用不是系统应用,Android可以在内存不足的情况下销毁该进程,其中包括服务。否则,请检查startForeground()以获取应用程序服务。
答案 1 :(得分:0)
你可以试试这个:
public class ServiceBackground extends Service {
@Override
public IBinder onBind( final Intent arg0 ) {
return null;
}
@Override
public void onCreate() {
final ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor( 1 ); // Number of threads keep in the pool
executor.scheduleAtFixedRate( new Runnable() {
@Override
public void run() {
Log.i( "LocalService", "service running" );
if (stopCondition == true ) {
executor.shutdownNow();
}
}
}, 1, 1000, TimeUnit.MILLISECONDS );
super.onCreate();
}
@Override
public int onStartCommand( final Intent intent, final int flags, final int startId ) {
return Service.START_STICKY;
}
}
请记住在AndroidManifest.xml中注册该服务
的更多信息启动服务
public class MainActivity extends Activity {
@Override
protected void onCreate( final Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
this.setContentView( R.layout.activity_main );
this.startService( new Intent( this, ServiceBackground.class ) );
}
}