在android studio中保存倒计时
我的应用程序有一个文本视图和一个按钮,当我按下按钮时,倒计时开始,但当我关闭应用程序并再次打开时,倒计时再次返回到0。如何保存倒计时?它有共同的偏好吗 代码如下:在android studio中保存倒计时,android,countdown,Android,Countdown,我的应用程序有一个文本视图和一个按钮,当我按下按钮时,倒计时开始,但当我关闭应用程序并再次打开时,倒计时再次返回到0。如何保存倒计时?它有共同的偏好吗 代码如下: public class MainActivity extends Activity { Button b1; TextView tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCr
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的杀伤力大大超过了。共享首选项绝对是一种方式。嗨,对不起,我没有解释清楚,我需要的是保存倒计时,当我关闭并打开应用程序时,我希望倒计时仍能继续运行