开始其他活动的杀戮活动

时间:2014-11-12 08:49:43

标签: java android android-intent service

我正在创建Android应用程序来锁定移动设备中安装的应用程序。在这个应用程序中,我创建了两个活动和两个类

  1. LockAppMainActivity(用于设置密码和启动服务的主要活动)
  2. CreatedWith(类文件在一定时间后锁定屏幕)
  3. LockScreen(当用户启动应用了锁定的app时,会向用户显示锁定屏幕)
  4. ServiceRestarts(重启后启动服务的类文件)
  5. 此应用程序的问题在于,当用户尝试解锁应用程序时,在解锁应用程序后,锁定屏幕会转到后台并且不会被杀死。我希望锁定屏活动在用户解锁应用时被杀死。

    LockAppMainActivity(启动服务)

     startService(new Intent(this, CreatedWith.class));
    

    CreatedWith

         @Override
         public int onStartCommand(Intent intent, int startId,int ff) {
         int delay = 10;
         int period = 100;
         Timer timer = new Timer(); 
         timer.scheduleAtFixedRate(new TimerTask() 
             { 
                 public void run() 
                 { 
                      odopo();  
    
                 } 
             }, delay, period); 
    
         return START_STICKY;
    
         }
    
          void odopo(){
    
          ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
          final List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1);
    
                    ActivityManager.RunningTaskInfo ar = RunningTask.get(0);
                    String activityOnTop = ar.topActivity.getClassName();
                    if(activityOnTop.contains("whatsapp"))
                    {
                        if(LockAppMainActivity.myId!=1){
    
                    Intent lockIntent = new Intent(this, LockScreen.class);
                    lockIntent.putExtra("sec", activityOnTop);
                    lockIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    
                    this.startActivity(lockIntent);
                    }}}
    

    的LockScreen 如果用户输入的密码正确,则运行以下代码。

                 Intent LaunchApp = getPackageManager().getLaunchIntentForPackage(ar.topActivity.getPackageName());
                LaunchApp.setFlags(LaunchApp.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY); 
                startActivity(LaunchApp);
    

    此代码的问题在于,当应用程序解锁时,LockScreen会进入后台但我希望​​它被杀死。

    提前谢谢

1 个答案:

答案 0 :(得分:0)

public void onDestroy() {
        super.onDestroy();
        android.os.Process.killProcess(android.os.Process.myPid());
}    

别忘了打电话给finish();

如果你想因内存使用而杀死它,你可能想让操作系统杀掉它。 Android RAM经过优化,可以保持更多的空载。如果操作系统达到内存状态&#34;(OOM),它就会开始杀死最低优先级的进程(后台进程的优先级非常低)