【原创】Service如何关闭启动自己的Activity

转载 2012年03月30日 00:00:14

http://our2848884.blog.163.com/blog/static/14685483420109302018538/

今天在编写Android程序的时候,遇到这个问题。通过百度和google的搜索结果,总结出以下方法:
方法一:
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;
    /*
     * (non-Javadoc)
     * @see android.app.Activity#onCreate(android.os.Bundle)
     */
    @Override
    protected 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 {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ((MyApp)getApplication()).setInstance(this);
    ……
    }
}
3. 在service中取回实例
public class MyService extends Service {
        MyServiceActivity myActivity;
        @Override
        public void onCreate() {
                super.onCreate();
                setForeground(true);
                android.os.Debug.waitForDebugger();
                myActivity = ((MyApp)getApplication()).getInstance();
                ……
       }
}


如何让别的app启动你的activity

原文:http://developer.android.com/training/basics/intents/filters.html 前面两个章节主要介绍了如何在你的应用中启动别的应用的acti...
  • goldenfish1919
  • goldenfish1919
  • 2014年10月28日 15:18
  • 1908

Android中几种关闭Activity或app的方法

1. finish()方法 该方法可以结束当前 Activity,但是如果你的App有很多 Activity 的话,使用该方法显得有点捉襟见肘了。 另外,还有一个方法finishActivity ...
  • yinzhijiezhan
  • yinzhijiezhan
  • 2015年08月20日 17:16
  • 12156

Activity怎么和service绑定,怎么在activity中启动自己对应的service

1. Activity通过bindService(Intent service, ServiceConnection  conn, int flags)跟Service进行绑定。     2. ...
  • mp624183768
  • mp624183768
  • 2017年02月05日 20:29
  • 574

android89--Activity怎么和service绑定,怎么在activity中启动自己对应的service

startService() 一旦被创建  调用着无关   没法使用service里面的方法 bindService () 把service 与调用者绑定 ,如果调用者被销毁,service会销毁 ...
  • juqiuji
  • juqiuji
  • 2013年04月08日 19:14
  • 1488

android service 启动和关闭不在同一个Activity的问题

在android2.3版本上可以在一个的activity中直接stopService()关闭同一应用另外一个activity启动的service,但是把sdk换成4.0.3以上的版本,就会抛出异常,这...
  • shinilaobababa
  • shinilaobababa
  • 2016年09月19日 15:04
  • 615

【原创】Service如何关闭启动自己的Activity

今天在编写Android程序的时候,遇到这个问题。通过百度和google的搜索结果,总结出以下方法:方法一:public class mService extends Service {    //保...
  • our2848884
  • our2848884
  • 2017年04月17日 15:19
  • 74

Service如何关闭启动自己的Activity

Service如何关闭启动自己的Activity   今天在编写Android程序的时候,遇到这个问题。通过百度和google的搜索结果,总结出以下方法: 方法一: public class m...
  • u012648276
  • u012648276
  • 2014年08月22日 15:43
  • 178

如何启动一个没有Activity的Service

如何启动一个没有Activity的Service介绍 我们APP在安装到手机上后,如果不启动一次是无法接收到开机等静态广播的(安卓3.1版本以后),发现在3.1版本中增加了限制,系统的package ...
  • qq_28270161
  • qq_28270161
  • 2017年03月16日 15:06
  • 262

【原创】Service监听到事件后关闭启动自己的Activity

今天写代码的时候,遇到一个小问题,逻辑过程如下: 1 在mActivity中启动一个mService; 2 mActivity负责通知用户信息,运行在前台; 3 mService负责监听手机摇晃事件,...
  • our2848884
  • our2848884
  • 2017年04月17日 15:19
  • 200

【Android】Activity切换效果——当通过Service启动自己Activity的时候怎么控制

1原因: 当你在网上搜activity切换效果的时候基本就是告诉你要么是XML要么是overridePendingTransition,但是如果你是Service启动的Activity怎么办,这个网...
  • windowsxp2014
  • windowsxp2014
  • 2015年05月22日 09:38
  • 1334
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【原创】Service如何关闭启动自己的Activity
举报原因:
原因补充:

(最多只允许输入30个字)