2017-04-22 132 views
-1

不断在后台运行服务。例如,即使应用程序关闭,也必须启动一项服务,该服务将显示一次20秒的敬酒消息。不断在后台运行服务

public class AppService extends IntentService { 

    public int onStartCommand(Intent intent, int flags, int startId) { 
     return START_STICKY; 
    } 

    public AppService() { 
     super("AppService"); 
    } 

    @Override 
    protected void onHandleIntent(Intent workIntent) { 
     Toast.makeText(getApplicationContext(), "hai", Toast.LENGTH_SHORT).show(); 
     SystemClock.sleep(20000); 
    } 
} 
+0

。 – aldok

回答

3

下面的代码。如果你想确保服务的应用程序被关闭后仍在运行,然后用前景色服务工作对我来说...

public class AppService extends Service { 

@Override 
public IBinder onBind(Intent intent) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public void onCreate() { 
    Toast.makeText(this, " MyService Created ", Toast.LENGTH_LONG).show(); 
} 

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    Toast.makeText(this, " MyService Started", Toast.LENGTH_LONG).show(); 
    return START_STICKY; 
} 
} 
0

在你的清单,你宣布你的服务,添加:

android:process=":processname" 

这让一个单独的进程中运行的服务,因此它不会与应用程序被杀害。

然后,您可以选择是否要使用前景。它会显示持续的通知,但会降低服务被杀的可能性。

此外,如果要创建连续运行的服务,请使用Service,而不是IntentService。 IntentService在完成其操作时停止。