对于演示,我在Evert 10秒后打印Toast。使用Service
类。
它工作正常,如果我在离开应用程序时处于活动状态,我每10秒钟就会收到一次Toast,服务没有给出o / p。
但是我想那个干杯要么我会杀掉应用程序还是反击这里是代码片段:
ServiceDemo.java
public class ServiceDemo extends Activity {
private Handler myHandler = new Handler();
private Runnable drawRunnable = new Runnable() {
@Override
public void run() {
as();
myHandler.postDelayed(this, 10000);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_service_demo);
myHandler.postDelayed(drawRunnable, 10000);
startService(new Intent(this, MyService.class));
}
public void as(){
startService(new Intent(this, MyService.class));
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
}
}
Service.java
public class MyService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Toast.makeText(this, "HOHO Service Created...", Toast.LENGTH_LONG).show();
}
@Override
public void onDestroy() {
}
@Override
public void onStart(Intent intent, int startid) {
Toast.makeText(this, "Service Started...", Toast.LENGTH_LONG).show();
}
}
修改1
moveTaskToBack(true);
我把它放入onBackPressed方法我服务提供o / p如果我不在屏幕上但是当我杀死应用程序时,Service not responding
答案 0 :(得分:1)
我认为您需要覆盖onStartCommand而不是onStart()
像:
public int onStartCommand(Intent intent, int flags, int startid)
{
Toast.makeText(this, "Service Started...", Toast.LENGTH_LONG).show();
return Service.START_STICKY;
}
答案 1 :(得分:0)
我认为AlarmManager
就是你想要的。
答案 2 :(得分:0)
你必须使用AlarmManager,这是一个例子:Alarm Manager Example
即使申请被终止,您的任务也将被执行。
但是如果应用程序被用户杀死,则警报将被取消。请参阅此讨论How to create a persistent AlarmManager