您好我正在尝试创建一个可以在后台运行且不会进入PAUSE
模式的应用。
我已阅读有关服务并尝试这样做,但dint实际上得到了如何使用Service这样做。
请帮助我提供服务或任何其他方式在后台运行应用程序。
答案 0 :(得分:3)
要创建在其他当前活动的后台运行的应用程序,需要创建一个服务。服务可以无限期地运行(无限制)或者可以在调用活动的生命周期内运行(有界)。
请注意,服务的生命周期与活动不同,因此具有不同的方法。但是要在应用程序中开始一个服务,调用startService()来调用服务onCreate()方法和onStart()开始运行服务。
https://thenewcircle.com/s/post/60/servicesdemo_using_android_services
来源 http://thenewcircle.com/static/tutorials/ServicesDemo.zip
音乐文件 http://thenewcircle.com/static/tutorials/braincandy.m4a
service class extends Service{
//service methods
@Override
public void onCreate() {
Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
Log.d(TAG, "onCreate");
player = MediaPlayer.create(this, R.raw.braincandy);
player.setLooping(false); // Set looping
}
@Override
public void onDestroy() {
Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
Log.d(TAG, "onDestroy");
player.stop();
}
@Override
public void onStart(Intent intent, int startid) {
Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
Log.d(TAG, "onStart");
player.start();
}
}
它完美无缺,我也对此进行了测试。
http://developer.android.com/reference/android/app/Service.html
Android: How to periodically send location to a server
keep application running in background
请告诉我是否仍然面临任何问题:)
答案 1 :(得分:2)
尝试以下内容。
以下代码开始新活动。
Intent intent = new Intent(MainActivity.this, AppService.class);
startService(intent);
// This function is used to hide your app
hideApp(getApplicationContext().getPackageName());
System.out.println("Inside of main");
}
private void hideApp(String appPackage) {
ComponentName componentName = new ComponentName(appPackage, appPackage
+ ".MainActivity");
getPackageManager().setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
}
所以基本上你可以在AppService
类
并在清单文件中将服务类声明为服务而非活动,因此它应该像这样
<service android:name=".AppService" >
</service>