Android running out of memory
<p>Below I am showing the first and second activities. The first one is just to show what the baseline memory is. My question is: <strong>what is going on in the second activity that is allocating so much memory?!</strong> </p>

<p>It should not be working so hard and I can't figure out what it is that is allocating so much memory at that steady pace. It continues to allocate at the rate shown below for the second screen until it runs out. Then I guess the GC gets called and re-allocates memory. Then the memory keeps getting allocated until it runs out again and again.</p>

<p><strong>First Activity Screen:</strong></p>

<p><a href="https://i.stack.imgur.com/PQPbB.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/PQPbB.png" alt="First Screen"></a></p>

<p><strong>First Activities Memory:</strong></p>

<p><a href="https://i.stack.imgur.com/vcbcv.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/vcbcv.png" alt="Memory for First Screen"></a></p>

<p><strong>Second Activity Screen:</strong>
No buttons have been pressed yet and nothing is being recorded. SignalStrengthListener checks for changes in the LTE parameters and updates the UI once per second. But the memory is going out of control.</p>

<p><a href="https://i.stack.imgur.com/fk88V.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/fk88V.png" alt="Second Screen"></a></p>

<p><strong>Second Activity Memory:</strong></p>

<p><a href="https://i.stack.imgur.com/4kwOv.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/4kwOv.png" alt="Memory for Second Screen"></a></p>

<p>Here is my code for the Second activity and its layout:</p>

<p><strong>Second.java</strong></p>

<pre><code>public class Second extends Activity implements Runnable {

    public static SignalStrengthListener signalStrengthListener;
    public static TelephonyManager tm;
    List&lt;CellInfo&gt; cellInfoList;

    public static TextView lteRsrp;
    public static TextView lteRsrq, lteCqi;
    public static TextView cellPciTextView;
    EditText offsetText;

    Button startButton, offsetButton;
    public static int cellPci = 0;
    public static String ltestr;
    public static String[] parts;
    public static String mydate;
    public static double offset = 0.0;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_activity);

        run();
        setupUI();
        setupButton();

    }

    private void setupUI() {
        lteRsrp = (TextView) findViewById(R.id.lteRsrp);
        lteRsrq = (TextView) findViewById(R.id.lteRsrq);
        lteCqi = (TextView) findViewById(R.id.lteCqi);
        cellPciTextView = (TextView) findViewById(R.id.cellPciTextView);
        offsetText = (EditText) findViewById(R.id.offsetText);
        startButton = (Button) findViewById(R.id.startButton);
        offsetButton = (Button) findViewById(R.id.offsetButton);


        new Timer().scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {

                        parts[9] = String.valueOf(Double.parseDouble(parts[9]) + offset);

                        if (Double.parseDouble(parts[9]) == 2147483647) {
                            parts[9] = "-141";
                        }
                        if (Integer.parseInt(parts[10]) == 2147483647) {
                            parts[10] = "-21";
                        }
                        if (Integer.parseInt(parts[12]) == 2147483647) {
                            parts[12] = "-20";
                        }

                        lteRsrp.setText(String.valueOf(parts[9]));
                        lteRsrq.setText(String.valueOf(parts[10]));
                        lteCqi.setText(String.valueOf(parts[12]));
                        cellPciTextView.setText(String.valueOf(cellPci));
                    }
                });
            }
        }, 0, 1000);

    }

    private void setupButton() {
        startButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(getBaseContext(), Third.class);
                startActivity(intent);

            }
        });

        offsetButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                offset = Double.parseDouble(offsetText.getText().toString());
                Log.d("TAG", "????????????????????????????????????????????????  offset value is = " + offset);
                InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
                imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
            }
        });

    }

    @Override
    public void run() {
        // Moves the current Thread into the background
//        android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);

        //start the signal strength listener
        signalStrengthListener = new SignalStrengthListener();
        ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).listen(signalStrengthListener, SignalStrengthListener.LISTEN_SIGNAL_STRENGTHS);

    }

    public class SignalStrengthListener extends PhoneStateListener {
        @Override
        public void onSignalStrengthsChanged(android.telephony.SignalStrength signalStrength) {

            ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).listen(signalStrengthListener, SignalStrengthListener.LISTEN_SIGNAL_STRENGTHS);

            tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

            ltestr = signalStrength.toString();
            parts = ltestr.split(" ");

            try {
                cellInfoList = tm.getAllCellInfo();
                for (CellInfo cellInfo : cellInfoList) {

//                        Log.d("TAG", "cellInfoList size = " + cellInfoList.size() + " +++++++++++++++++++++++++++++++");

                    if (cellInfo instanceof CellInfoLte) {
                        // cast to CellInfoLte and call all the CellInfoLte methods you need
                        // Gets the LTE PCI: (returns Physical Cell Id 0..503, Integer.MAX_VALUE if unknown)
                        cellPci = ((CellInfoLte) cellInfo).getCellIdentity().getPci();
                    }
                }
            } catch (Exception e) {
//                    Log.d("SignalStrength", "+++++++++++++++++++++++++++++++ null array spot 3: " + e);
            }

            mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
            super.onSignalStrengthsChanged(signalStrength);

        }
    }

}
</code></pre>

<p><strong>second_activity.xml:</strong></p>

<pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffdc1d"&gt;

    &lt;TextView
        android:layout_width="160dp"
        android:layout_height="wrap_content"
        android:text="0"
        android:textSize="22sp"
        android:textColor="#000000"
        android:id="@+id/lteRsrp"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:layout_marginStart="29dp"
        android:layout_marginTop="80dp"
        android:textAlignment="textEnd"
        android:background="#ffdc1d"
        android:textStyle="bold"
        android:layout_marginBottom="20dp" /&gt;

    &lt;TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="= LTE RSRP"
        android:textSize="22sp"
        android:textColor="#000000"
        android:id="@+id/textView2"
        android:background="#ffdc1d"
        android:textStyle="bold"
        android:layout_alignTop="@+id/lteRsrp"
        android:layout_toEndOf="@+id/lteRsrp"
        android:layout_marginLeft="10dp" /&gt;

    &lt;TextView
        android:layout_width="160dp"
        android:layout_height="wrap_content"
        android:text="0"
        android:textColor="#a71b1b"
        android:textSize="22sp"
        android:id="@+id/lteRsrq"
        android:layout_below="@+id/lteRsrp"
        android:layout_alignStart="@+id/lteRsrp"
        android:textAlignment="textEnd"
        android:textStyle="bold"
        android:background="#ffdc1d"
        android:layout_marginBottom="20dp" /&gt;

    &lt;TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="= LTE RSRQ"
        android:textSize="22sp"
        android:textColor="#a71b1b"
        android:id="@+id/textView3"
        android:textStyle="bold"
        android:background="#ffdc1d"
        android:layout_below="@+id/lteRsrp"
        android:layout_alignStart="@+id/textView2" /&gt;

    &lt;TextView
        android:layout_width="160dp"
        android:layout_height="wrap_content"
        android:text="0"
        android:textSize="22sp"
        android:textColor="#075f09"
        android:id="@+id/cellPciTextView"
        android:layout_below="@+id/lteRsrq"
        android:layout_alignStart="@+id/lteRsrq"
        android:textAlignment="textEnd"
        android:background="#ffdc1d"
        android:textStyle="bold" /&gt;

    &lt;TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="= LTE PCI"
        android:textSize="22sp"
        android:textColor="#075f09"
        android:id="@+id/textView4"
        android:background="#ffdc1d"
        android:textStyle="bold"
        android:layout_alignTop="@+id/cellPciTextView"
        android:layout_alignStart="@+id/textView3" /&gt;

    &lt;TextView
        android:layout_width="160dp"
        android:layout_height="wrap_content"
        android:text="0"
        android:textSize="22sp"
        android:textColor="#000000"
        android:id="@+id/lteCqi"
        android:textAlignment="textEnd"
        android:background="#ffdc1d"
        android:textStyle="bold"
        android:layout_below="@+id/cellPciTextView"
        android:layout_alignStart="@+id/cellPciTextView"
        android:layout_marginTop="20dp" /&gt;

    &lt;TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="= LTE CQI"
        android:textSize="22sp"
        android:textColor="#000000"
        android:id="@+id/textView"
        android:background="#ffdc1d"
        android:textStyle="bold"
        android:layout_alignTop="@+id/lteCqi"
        android:layout_alignStart="@+id/textView4" /&gt;

    &lt;Button
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:text="Start"
        android:textColor="#ffdc1d"
        android:textSize="22sp"
        android:id="@+id/startButton"
        android:layout_marginBottom="47dp"
        android:background="#f91616"
        android:textAlignment="center"
        android:textStyle="bold"
        android:padding="4dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" /&gt;

    &lt;TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Press the START button to begin recording"
        android:id="@+id/textView8"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:textColor="#f91616"
        android:textSize="22sp"
        android:textStyle="italic"
        android:textAlignment="center"
        android:layout_marginTop="12dp" /&gt;

    &lt;Button
        android:layout_width="120dp"
        android:layout_height="60dp"
        android:text="Set offset"
        android:id="@+id/offsetButton"
        android:textColor="#ffdc1d"
        android:background="#f91616"
        android:textStyle="bold"
        android:textSize="18sp"
        android:layout_marginBottom="83dp"
        android:layout_above="@+id/startButton"
        android:layout_alignStart="@+id/textView" /&gt;

    &lt;EditText
        android:layout_width="120dp"
        android:layout_height="40dp"
        android:id="@+id/offsetText"
        android:background="#ffffff"
        android:layout_alignBottom="@+id/offsetButton"
        android:layout_alignEnd="@+id/lteCqi"
        android:text="0.0"
        android:textAlignment="center"
        android:textColor="#000000"
        android:textSize="22sp"
        android:textStyle="bold"
        android:layout_marginBottom="4dp" /&gt;


&lt;/RelativeLayout&gt;
</code></pre>