2

特定のプロセスが開始されたかどうかを毎秒チェックし、パスワードのダイアログ ボックスをポップアップ表示するセキュリティ アプリケーション用のサービスを作成しています。パスワードを入力する場合にのみ、誰でもそのアプリケーションを使用できます。私の問題は、タイマーがダイアログボックスを繰り返し表示することです。そのため、「c」変数を適用してこのダイアログを一度実行しますが、これはアプリを起動したときにのみ表示されます。その後!最初にダイアログボックスを表示せずにアプリが直接開いています`

private static Timer timer = new Timer(); 
        private Context ctx;
      private  int c=0;
    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }
      public void onCreate() 
        {
              super.onCreate();
              ctx = this; 
              startService();
        }

        private void startService()
        {           
            timer.scheduleAtFixedRate(new mainTask(), 0, 5000);
        }

        private class mainTask extends TimerTask
        { 
            public void run() 
            {
                toastHandler.sendEmptyMessage(0);
            }
        }   
    @Override
    public int onStartCommand(Intent intent, int flag,int startId){
        /* Timer timer = new Timer();
            timer.scheduleAtFixedRate(new TimerTask() {
                public void run() {   


                                dial();
                            }
                        }                       
                     }
                   }, 0, 1000);*/
        return START_STICKY;    
    }
    @Override
    public void onDestroy(){

        super.onDestroy();
        timer.cancel();
        Toast.makeText(this, "Service Stoped", Toast.LENGTH_LONG).show();
    }
     private final Handler toastHandler = new Handler()
        {
            @Override
            public void handleMessage(Message msg)
            {
                Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_SHORT).show();
                ActivityManager actvityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
            List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();
            for(int i = 0; i < procInfos.size(); i++){
                if(procInfos.get(i).processName.equals("com.android.music")) {
                    Toast.makeText(getApplicationContext(), "music is running", Toast.LENGTH_LONG).show();
                  c++;
                  if(c==1){
                    int pid = android.os.Process.getUidForName("com.android.music");
                     android.os.Process.killProcess(pid);
                    Intent ii = new Intent();
                       ii.setClass(APP_SeeL_Password.this,Setappdetail.class);
                       ii.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                       startActivity(ii); 
                  }
                    //timer.cancel();
                  }
                } 
           }
        };  ` 

ここに私のダイアログアクティビティがあります

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.custom_dialoge);
    LayoutParams params = getWindow().getAttributes(); 
    params.width = LayoutParams.FILL_PARENT; 
     getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);
    // TODO Auto-generated method stub

EditText et=(EditText)findViewById(R.id.editText2);
  str=et.getText().toString();
  LockOrNot getpinvar=new LockOrNot(this);
     getpinvar.open();
      ptr=getpinvar.getpin(1);
     getpinvar.close();
Button okb=(Button)findViewById(R.id.button1);

okb.setOnClickListener(新しい View.OnClickListener() {

    public void onClick(View arg0) {
        // TODO Auto-generated method stub

        if(str.equals(ptr)==true){
        Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.music");
        startActivity( LaunchIntent );}
    }
});
Button cancelb=(Button)findViewById(R.id.button2);
cancelb.setOnClickListener(new View.OnClickListener() {

    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        Intent startMain = new Intent(Intent.ACTION_MAIN);
        startMain.addCategory(Intent.CATEGORY_HOME);
        startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(startMain);
    }
});

}

4

0 に答える 0