Android 隐藏和启动程序

 

 由于我的项目中有需要后台运行的程序。所以想做个类似QQ手机那类的东西。隐藏主程序,并在点击状态栏图标后再次恢复到之前的页面上。

 

下面单位是监听返回按钮,用于隐藏主程序

 

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event){
     if (keyCode == KeyEvent.KEYCODE_BACK) {
      AlertDialog.OnClickListener lsn = new AlertDialog.OnClickListener() {
    	  
	     @Override
	     public void onClick(DialogInterface dialog, int which) {
	     // TODO Auto-generated method stub
		     if (which == DialogInterface.BUTTON_NEGATIVE)
		     {
		     	return;
		     }
		     if (false) {
		      //dealCopyingOnExit();
		     } else {
		    	showNotification(R.drawable.logo_2,"图片旁边的文字","XXXX","内容");
		    	
		     	Intent i= new Intent(Intent.ACTION_MAIN); 
		    	i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
		    	i.addCategory(Intent.CATEGORY_HOME); 
		    	startActivity(i);  

		     }
	     }
	   };
	   
      new AlertDialog.Builder(this).setMessage(getString(R.string.sure_exit))
       .setPositiveButton("\t隐藏\t", lsn).setNegativeButton("\t取消 \t", lsn)
        .create().show();
      
      return true;
     }
     return super.onKeyDown(keyCode, event);
    }


 

 

创建一个通知

public void showNotification(int icon,String tickertext,String title,String content){
        //Notification管理器
		nm= (NotificationManager)getSystemService(NOTIFICATION_SERVICE);


        Notification notification=new Notification(icon,tickertext,System.currentTimeMillis());
        //后面的参数分别是显示在顶部通知栏的小图标,小图标旁的文字(短暂显示,自动消失)系统当前时间(不明白这个有什么用)
        //notification.defaults=Notification.DEFAULT_VIBRATE;
        //这是设置通知是否同时播放声音或振动,声音为Notification.DEFAULT_SOUND
        //振动为Notification.DEFAULT_VIBRATE;
        //Light为Notification.DEFAULT_LIGHTS,在我的Milestone上好像没什么反应
        //全部为Notification.DEFAULT_ALL
        //如果是振动或者全部,必须在AndroidManifest.xml加入振动权限
       
    	
        PendingIntent pt=PendingIntent.getActivity(this, 0 , new Intent(this,VncesMain.class), 0);
        //点击通知后的动作,这里是转回main 这个Acticity
        notification.setLatestEventInfo(this,title,content,pt);
        
         nm.notify(notification_id, notification);
  
    }


最重要的来了。如果你不加下面这一句,你点击状态栏小图片时,他会重新创建一个程序。

AndroidManifest.xml 文档里面的主 activity 上加入

android:launchMode="singleTask"

singleTask:顾名思义就是堆栈中只保留一个Activity
如果桌面Activity设置了singleTask,下次再启动应用时,其他Activity都从堆栈中清除,只留下主界面的Activity,所有再次启动后打开的是主界面的Activity

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值