6.4 程序管理器中的应用启动&卸载&分享

  /**
       * 卸载 app
       */
       public   void   unistallApp(){
            Intent intent =   new   Intent();
            intent.setAction(Intent.   ACTION_DELETE );
            intent.addCategory(Intent.   CATEGORY_DEFAULT );
            intent.setData(Uri. parse( "package:"   +   clickAppInfo .getPackName()));
            startActivityForResult(intent, 0);

      }

         //卸载之后告诉程序管理器界面重新填充数据,否则卸载之后的app还会出现在lv中
            
        // 方法1: onactivityResult
       @Override
       protected   void   onActivityResult(   int   requestCode,   int   resultCode, Intent data) {
            fillDateToLIst();
               super .onActivityResult(requestCode, resultCode, data);
      }



      // 方法2: 发送一条自定义广播
     <   receiver   android:name =   "xxxx" >
              < intent-filter   >
               
                  < action   android:name =   "android.intent.action.PACKAGE_REMOVED"   />
              </ intent-filter   >
          </ receiver   >



//---------------------------------------------------------------------------------------


      
      
      
       /**
       * 分享应用: 激活系统短信应用
       */
       public   void   shareApp(){
      
          /* <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />*/
            
            Intent intent=   new   Intent();
            intent.setAction(   "android.intent.action.SEND" );
            intent.addCategory(   "android.intent.category.DEFAULT" );
            intent.setType(   "image/*" );
            
          //分享内容
            intent.putExtra(intent.   EXTRA_TEXT ,   "推荐一款软件:"   + clickAppInfo   .getAppName()+
                           ",下载网址是:"   + "http://play.google.com/store/apps/details?id="   + clickAppInfo   .getPackName());
   
          startActivity(intent);
      
      }

      


//---------------------------------------------------------------------------------------




       /**
       * 启动 App的方法: 意图开启应用的第一个activity
       */
       public   void   startApp(){
               // 查找当前应用程序里面的第一个activity. 激活他.
                        PackageManager pm = getPackageManager();
                           try   {
                                 //懒加载
                              PackageInfo packInfo = pm.getPackageInfo(
                                             clickAppInfo .getPackName(),  PackageManager. GET_ACTIVITIES   );
                              ActivityInfo[] infos = packInfo. activities ;
                                 if   (infos !=   null   && infos.   length   > 0) {
                                    ActivityInfo activityInfo = infos[0];
                                    String className = activityInfo. name ;
                                    Intent intent =   new   Intent();
                                    intent.setClassName(   clickAppInfo .getPackName(), className);
                                    startActivity(intent);
                              }   else   {
                                    Toast. makeText( this ,   "没有找到入口activity" , 0).show();
                              }

                        }   catch   (NameNotFoundException e) {
                              e.printStackTrace();
                              Toast. makeText( this ,   "无法启动该应用" , 0).show();
                        }
            
      }



--------------------------------------------------------
问题:自己开启自己的时候出现重复加载相同的activity

指定软件管理的activity的启动模式为:  singleTask     


  <!--软件管理的activity  -->
          < activity
              android:name =   "com.itheima.mobilesafe.AppManagerActivity"
                android:theme =   "@android:style/Theme.Light.NoTitleBar"
                android:launchMode =   "singleTask"
              ></ activity   >




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值