1

ボタンがあり、クリックするとテキストビューにlogcatが表示されます。

ボタンクリックイベント -

findViewById(R.id.button).setOnClickListener(new OnClickListener() {        
@Override
public void onClick(View v) {

Thread mThread = new MonitorLogThread();
    mThread.start();

}

実行を行うスレッド -

private class MonitorLogThread extends Thread
    {
         public MonitorLogThread()
         {
             Process process;

             try {
                process = Runtime.getRuntime().exec("logcat UserFragment:I 
                LookUpActivity:I IncomingStream:I *:S");
                br = new BufferedReader(new InputStreamReader(process.getInputStream()));
            } catch (IOException e) {
                e.printStackTrace();
            }         
         }

        @Override
        public void run() {
            try {     

                    Log.i(TAG, "Getting the logs for Logcat");

                    logItems.clear();

                    String line;

                    // Check if it matches the pattern
                    while(((line=br.readLine()) != null) && !this.isInterrupted() && isMonitor){

                    // Filter for your app-line
                    if (line.contains("ClickedEvents:")){
                        System.out.println("the line added......"+line);
                        logItems.add(line);

                    }
                }


            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

問題は、最初にボタンをクリックしたときに、行textview (and logcat)が次のように表示されることです-

the line added......User click event
the line added......User click event success
the line added......User click event done
the line added......User click event gone

しかし、2回目にボタンをクリックすると、行は次のtextview (and logcat)ように表示されます-

the line added......User click event
the line added......User click event
the line added......User click event success
the line added......User click event success
the line added......User click event done
the line added......User click event done
the line added......User click event gone
the line added......User click event gone

3回目はさらに追加…。

だから私がクリックする回数、それはそれを複製します。

何が問題なのですか?

4

1 に答える 1

1

プロセスが破棄されないため、重複が発生します。使い終わったらやってみてくださいprocess.destroy()

于 2014-11-27T15:22:31.330 に答える