在android studio中保存倒计时

在android studio中保存倒计时,android,countdown,Android,Countdown,我的应用程序有一个文本视图和一个按钮,当我按下按钮时,倒计时开始,但当我关闭应用程序并再次打开时,倒计时再次返回到0。如何保存倒计时?它有共同的偏好吗 代码如下: public class MainActivity extends Activity { Button b1; TextView tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCr

我的应用程序有一个文本视图和一个按钮,当我按下按钮时,倒计时开始,但当我关闭应用程序并再次打开时,倒计时再次返回到0。如何保存倒计时?它有共同的偏好吗

代码如下:

public class MainActivity extends Activity {
    Button b1;
    TextView tv1;

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

        tv1 = (TextView) findViewById(R.id.tv1);
        b1 = (Button) findViewById(R.id.b1);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu
        // this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    public void a(View view){
        new CountDownTimer(10000, 1000) {
            public void onTick(long millisUntilFinished) {
                tv1.setText("La cuenta llega a 0 en: " + millisUntilFinished / 1000);
            }
            public void onFinish() {
                tv1.setText("Listo!");
            }
        }.start();
    }
}

当然可以。SharedReferences是适合您的解决方案。当您关闭应用程序(
onDestroy
)时,您通过
SharedReferences.Editor
对象保存该值,而当应用程序启动(
onCreate
)时,您将加载该值

示例如下:


当然可以。SharedReferences是适合您的解决方案。当您关闭应用程序(
onDestroy
)时,您通过
SharedReferences.Editor
对象保存该值,而当应用程序启动(
onCreate
)时,您将加载该值

示例如下:


完成任务有两种方法:- 1) 使用SharedReference保存变量值:-如果您只想保存一些表示一个或两个变量的值,最好的方法是使用这些源代码, 具有共享首选项的代码:

//To save
SharedPreferences countd = getSharedPreferences("Countdown_NAME", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("SNOW_DENSITY",mSnowDensity);
editor.commit();

//To retrieve
SharedPreferences settings = getSharedPreferences("Countdown_NAME", 0);
int snowDensity = settings.getInt("SNOW_DENSITY", 0); 
2) 第二个选项是使用sqlite数据库进行以下操作: 在这些选项中,您必须编写如下代码:

SQLiteDatabase mydatabase = openOrCreateDatabase("your database name",MODE_PRIVATE,null);
现在,为了在db中保存计数,您必须使用这些

///for saving
mydatabase.execSQL("CREATE TABLE IF NOT EXISTS Counter(counter int);");
mydatabase.execSQL("INSERT INTO TutorialsPoint VALUES(counter);");

///for retriving

Cursor resultSet = mydatbase.rawQuery("Select * from Counter",null);
resultSet.moveToFirst();
String username = resultSet.getInt(1);

我希望这会对你有所帮助。有两种方法可以完成你的任务:- 1) 使用SharedReference保存变量值:-如果您只想保存一些表示一个或两个变量的值,最好的方法是使用这些源代码, 具有共享首选项的代码:

//To save
SharedPreferences countd = getSharedPreferences("Countdown_NAME", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("SNOW_DENSITY",mSnowDensity);
editor.commit();

//To retrieve
SharedPreferences settings = getSharedPreferences("Countdown_NAME", 0);
int snowDensity = settings.getInt("SNOW_DENSITY", 0); 
2) 第二个选项是使用sqlite数据库进行以下操作: 在这些选项中,您必须编写如下代码:

SQLiteDatabase mydatabase = openOrCreateDatabase("your database name",MODE_PRIVATE,null);
现在,为了在db中保存计数,您必须使用这些

///for saving
mydatabase.execSQL("CREATE TABLE IF NOT EXISTS Counter(counter int);");
mydatabase.execSQL("INSERT INTO TutorialsPoint VALUES(counter);");

///for retriving

Cursor resultSet = mydatbase.rawQuery("Select * from Counter",null);
resultSet.moveToFirst();
String username = resultSet.getInt(1);

我希望这会有所帮助

尽管op想要的是db,但它的杀伤力太大了。共享首选项绝对是一个不错的选择。嗨,对不起,我没有解释清楚,我需要的是保存倒计时,当我关闭并打开应用程序时,我希望倒计时仍能继续运行。尽管op想要的是,db的杀伤力大大超过了。共享首选项绝对是一种方式。嗨,对不起,我没有解释清楚,我需要的是保存倒计时,当我关闭并打开应用程序时,我希望倒计时仍能继续运行