Service怎么关闭启动自己的Activity
1个回答
2016-04-30 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
方法一: public class mService extends Service {
//保存在service中的Activity对象 private static mActivity m;
//启动服务 static void startservice(Context c){
m=(mActivity)c;
Intent iService=new Intent(c,mService.class);
iService.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
c.startActivity(iService);}//关闭服务 static void stopservice(Context c){
Intent iService=new Intent(c,mService.class);
iService.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
c.stopService(iService);}……//在mService中关闭mActivity m.finish(); }
public class mActivity extends Activity {
// private MediaPlayer mMPlayer;@Overrideprotected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);……//启动mService mService.startservice(mActivity.this); ……
//停止mService mService.stopservice(mActivity.this); }}方法二: 主要包括3部分
1. 定义application类,这个类可以保存获取activity实例,记得manifest中加入android:name=".MyApp"
public class MyApp extends Application{
private MyServiceActivity myActivity;
public void setInstance(MyServiceActivity instance){
myActivity = instance;}public MyServiceActivity getInstance(){
return myActivity;}}
2. 在activity中保存实例 public class MyServiceActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
((MyApp)getApplication()).setInstance(this); ……}}
3. 在service中取回实例 public class MyService extends Service {
MyServiceActivity myActivity;@Overridepublic void onCreate() {
super.onCreate();setForeground(true);
//保存在service中的Activity对象 private static mActivity m;
//启动服务 static void startservice(Context c){
m=(mActivity)c;
Intent iService=new Intent(c,mService.class);
iService.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
c.startActivity(iService);}//关闭服务 static void stopservice(Context c){
Intent iService=new Intent(c,mService.class);
iService.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
c.stopService(iService);}……//在mService中关闭mActivity m.finish(); }
public class mActivity extends Activity {
// private MediaPlayer mMPlayer;@Overrideprotected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);……//启动mService mService.startservice(mActivity.this); ……
//停止mService mService.stopservice(mActivity.this); }}方法二: 主要包括3部分
1. 定义application类,这个类可以保存获取activity实例,记得manifest中加入android:name=".MyApp"
public class MyApp extends Application{
private MyServiceActivity myActivity;
public void setInstance(MyServiceActivity instance){
myActivity = instance;}public MyServiceActivity getInstance(){
return myActivity;}}
2. 在activity中保存实例 public class MyServiceActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
((MyApp)getApplication()).setInstance(this); ……}}
3. 在service中取回实例 public class MyService extends Service {
MyServiceActivity myActivity;@Overridepublic void onCreate() {
super.onCreate();setForeground(true);
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询