创建快捷方式,让被HOME键退出的APP恢复原状

1.Android Maniftest.xml 中,每个Activity添加如下属性:

android:alwaysRetainTaskState="true"

2. 创建快捷方式

private static final String SHORTCUT_UNINSTALL = "com.android.launcher.action.UNINSTALL_SHORTCUT";


public static void creatShortCut(Activity activity) 
{ 
   
deleteCallShortcut(activity);
   
   int resourceId = R.drawable.ic_launcher;
Intent intent = new Intent(); 
intent.setClass(activity, SplashActivity.class);
/*以下两句是为了在卸载应用的时候同时删除桌面快捷方式*/ 
intent.setAction("android.intent.action.MAIN"); 
intent.addCategory("android.intent.category.LAUNCHER"); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   intent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); 
//不允许重复创建 
shortcutintent.putExtra("duplicate", false); 
//需要现实的名称 
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, activity.getResources().getString(R.string.app_name)); 
//快捷图片 
Parcelable icon = Intent.ShortcutIconResource.fromContext(activity.getApplicationContext(), resourceId); 
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); 
//点击快捷图片,运行的程序主入口 
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent); 
//发送广播。OK 
activity.sendBroadcast(shortcutintent); 
} 

//删除快捷方式
private static void deleteCallShortcut(Activity activity) {
    Intent shortcut = new Intent(SHORTCUT_UNINSTALL);  
    //名字要和创建时的一样  
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, activity.getResources().getString(R.string.app_name));  
      
    //这里的intent要和创建时的intent设置一致  
    Intent intent = new Intent(); 
   intent.setClass(activity, SplashActivity.class);//SplashActivity.class);
   /*以下两句是为了在卸载应用的时候同时删除桌面快捷方式*/ 
   intent.setAction("android.intent.action.MAIN"); 
   intent.addCategory("android.intent.category.LAUNCHER");             
      
    //发送广播以删除shortcut  
   activity.sendBroadcast(shortcut);  
      
}  



   intent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);  //这一句很关键 是从系统创建的快捷方式中列出它的值找到的。



public static boolean hasShortcut(Context cx) {
       boolean result = false;
       // 获取当前应用名称
       String title = null;
       try {
           final PackageManager pm = cx.getPackageManager();
           title = pm.getApplicationLabel(
                   pm.getApplicationInfo(cx.getPackageName(),
                           PackageManager.GET_META_DATA)).toString();
       } catch (Exception e) {
       }

       final String uriStr;
       if (android.os.Build.VERSION.SDK_INT < 8) {
           uriStr = "content://com.android.launcher.settings/favorites?notify=true";
       } else {
           uriStr = "content://com.android.launcher2.settings/favorites?notify=true";
       }
       final Uri CONTENT_URI = Uri.parse(uriStr);
//     final Cursor c = cx.getContentResolver().query(CONTENT_URI, null,
//             "title=?", new String[] { title }, null);
//     if (c != null && c.getCount() > 0) {
//         result = true;
//     }
       
       final Cursor c = cx.getContentResolver().query(CONTENT_URI, null,
               "", new String[]{}, null);
       if (c != null && c.getCount() > 0) {
          for(int i=0; i<c.getCount(); i++){
             c.moveToPosition(i);
             for(int j=0; j<c.getColumnCount();j++){
                try{
                   if(j == 15){
//                    byte[] blob = c.getBlob(j);
//                    if(blob != null)
//                       for(int x = 0; x<blob.length; x++){
//                          Log.e("","blog["+x+"]:"+blob[x]);
//                       }
                   }
                   else
                      COM.LOGE("", "i:" + i + "j:" + j + " name:" + c.getColumnName(j) + " value:" + c.getString(j));
                }
                catch(RuntimeException e){
                   e.printStackTrace();
                }
             }
             c.moveToNext();
          }
           result = true;
       }
       
       return result;
   }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值