0

In an android application, I want to make an app that has a button named CleanCache and inside the code it list down all applications cache and clear it with a toast message that cache is cleared. I looked at different questions and answers but didn't find anything interesting. I'd implemented but it consists of errors.

Here is my MainActivity.java file:

package com.example.ahsankhan.cache;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import java.io.File;

public class MainActivity extends Activity {

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    addListenerOnButton();

}

public void addListenerOnButton() {

    //Select a specific button to bundle it with the action you want
    Button button = (Button) findViewById(R.id.button1);

    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View view) {

            @Override
            public void onCreate(Bundle *) {
                super.onCreate(*);
                setContentView(R.layout.activity_main);
            }

            @Override
            protected void onStop(){
                super.onStop();
            }

            //Fires after the OnStop() state
            @Override
            protected void onDestroy() {
                super.onDestroy();
                try {
                    trimCache(this);
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

            public static void trimCache(Context context) {
                try {
                    File dir = context.getCacheDir();
                    if (dir != null && dir.isDirectory()) {
                        deleteDir(dir);
                    }
                } catch (Exception e) {
                    // TODO: handle exception
                }
            }

            public static boolean deleteDir(File dir) {
                if (dir != null && dir.isDirectory()) {
                    String[] children = dir.list();
                    for (int i = 0; i < children.length; i++) {
                        boolean success = deleteDir(new File(dir,     children[i]));
                        if (!success) {
                            return false;
                        }
                    }
                }

                // The directory is now empty so delete it
                return dir.delete();
            }
        }

    });

}

}

activity_main.xml file

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button - Go to mkyong.com" />

</LinearLayout>

AndroidManifest.xml file

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ahsankhan.cache" >

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>
Kenster
  • 23,465
  • 21
  • 80
  • 106
Andrew
  • 1
  • 3

1 Answers1

0

Take a look at this line:

public void onCreate(Bundle *) {
   super.onCreate(*);

You can't use * as a variable name. It has to be something sane like this:

public void onCreate(Bundle b) {
   super.onCreate(b);
Kevin Workman
  • 41,537
  • 9
  • 68
  • 107