【发布时间】:2014-09-10 23:58:15
【问题描述】:
希望大家都好。
我读了很多书,有点迷茫,我对 Android 完全陌生,我想制作一个应用程序。
我的第一个方法是做一个活动,但我需要我的应用程序继续运行,所以我开始思考和使用服务。实际上问题是我需要服务永不停止,当手机重新启动或重新启动以再次启动服务时也是如此。
我已经弄清楚如何在重启/重启后启动服务。
我正在做的是以这种方式从我唯一的活动开始我的服务:
-------------------- 活动 -------------
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startService(new Intent(MyActivity.this, MyService.class));
}
-------------------- 服务 -------------
@Override
public void onCreate() {
Toast.makeText(this, "Auto Service Created onCreate", Toast.LENGTH_LONG).show();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId){
Timer timer;
Toast.makeText(this, "Auto Service onStartCommand", Toast.LENGTH_LONG).show();
int delay = 5000; // delay for 5 sec.
int period = 5000; // repeat every sec.
timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask(){
public void run()
{
System.out.println("Auto Service: Runing!");
}
}, delay, period);
return START_STICKY;
}
如果活动正在运行或在后台运行,它确实可以完美运行,但是当它被发送到任务列表并且我从那里手动消除它时,服务会停止,我不希望这种情况发生。
问题。-
1.- ¿如何使我的服务不被杀死并继续运行?
2.- ¿ 让 BroadcastReceiver 获得特定意图然后执行我的活动会更好吗? (改善电池以改善电池消耗)
3.- 如果问题 2 是更好的方法,¿我还需要服务还是可以依赖活动?
提前谢谢你!!!
编辑 1.-
实际上我想要实现的是在屏幕打开时启动一个活动(还不知道在屏幕关闭或屏幕打开时启动它是否更好)做一些工作然后完成活动。
然后在每次屏幕打开时再次重复活动,甚至在手机重新启动或重启时继续运行或开始运行活动,就像锁屏应用一样。
【问题讨论】:
标签: android service broadcastreceiver alarmmanager intentservice