Reputation: 131
I have created a timer
on my first activity
and would like the timer
to continue timing
on the second activity
. How do I go about doing this? Would I have to create a SharedPrefrence
or create a new timer
on the second activity
. I just don't know how I would link the timer
to the second activity
.
package com.example.warrenedy.mainapp;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.VolleyLog;
import com.android.volley.toolbox.StringRequest;
import com.example.warrenedy.mainapp.IMEI_UTILS.TelephonyInfo;
import com.example.warrenedy.mainapp.Utils.Utils;
import com.example.warrenedy.mainapp.VolleyUtils.AppController;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import pl.droidsonroids.gif.GifImageView;
import static com.example.warrenedy.mainapp.VolleyUtils.AppController.TAG;
public class MeditationTrackerTest extends Activity {
Button mButtonSavePoints, btnHelpBut;
ImageView btnSolver;
TextView text;
ImageView dr0;
ImageView dr1;
ImageView dr2;
ImageView dr3;
ImageView dr4;
ImageView dr5;
ImageView dr6;
ImageView dr7;
ImageView dr8;
ImageView dr9;
private Context mContext;
private MeditationTrackerTest mActivity;
private SharedPreferences sharedpreferences;
public static final String MyPREFERENCES = "MyPrefs";
public static final String Count = "Count";
public static final String Screen = "Screen";
public static final String Count2 = "Count2";
public static final String TestCnt = "testCnt";
public static final String FINAL_COUNT = "final_cnt";
int cnt = 0;
int cnt2 = 0;
int Points = 0;
int convertPoints = 0;
String Points2;
String points;
String screen;
View v;
TextView TimerValue, solve;
TimerTask mTimerTask;
final Handler handler = new Handler();
Timer t = new Timer();
private int nCounter = 0;
int countSolve = 0;
String StartOrStop;
String name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_meditation_tracker2);
sharedpreferences = getSharedPreferences(Utils2.MyPREFERENCES, Context.MODE_PRIVATE);
mContext = getApplicationContext();
mActivity = MeditationTrackerTest.this;
if ( sharedpreferences.contains(Count)) {
cnt = sharedpreferences.getInt(Count,0);
}
screen = "";
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(Screen,screen);
editor.commit();
TimerValue = (TextView) findViewById(R.id.tv_current_time);
TimerValue.setText("00:00:00");
StartOrStop = "Start";
dr0=(GifImageView) findViewById(R.id.d0);
dr1=(GifImageView) findViewById(R.id.d1);
dr2=(GifImageView) findViewById(R.id.d2);
dr3=(GifImageView) findViewById(R.id.d3);
dr4=(GifImageView) findViewById(R.id.d4);
dr5=(GifImageView) findViewById(R.id.d5);
dr6=(GifImageView) findViewById(R.id.d6);
dr7=(GifImageView) findViewById(R.id.d7);
dr8=(GifImageView) findViewById(R.id.d8);
dr9=(GifImageView) findViewById(R.id.d9);
mButtonSavePoints = (Button) findViewById(R.id.btn_save_points);
btnHelpBut = (Button) findViewById(R.id.btnHelp);
btnSolver = (ImageView) findViewById(R.id.btnSolver);
convertToImg(cnt);
mButtonSavePoints.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate();
if (Utils.getConnectivityStatus(mContext)) {
updateClientPointsAPI();
} else {
Utils.alertPopup(mContext, "You are not connected to internet.kindly connect with internet and try again.", mActivity);
}
}
});
btnHelpBut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calculate();
Intent i = new Intent(getApplicationContext(), HelpScreen6_7.class);
startActivity(i);
}
});
btnSolver.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btnSolver.setBackgroundResource(R.drawable.solver_green);
TimerValue.setText("00:00:00");
nCounter = 0;
name = "solve";
if( StartOrStop == "Start") {
doTimerTask();
Intent i = new Intent(getApplicationContext(), EmotionByDay.class);
startActivity(i);
}
else if ( StartOrStop == "Stop") {
stopTask();
}
}
});
}
public void doTimerTask(){
if( name == "solve") {
btnHelpBut.setClickable(false);
mButtonSavePoints.setClickable(false);
}
mTimerTask = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
nCounter++;
TimerValue.setText("" + Utils.secToString(Integer.parseInt(String.valueOf(nCounter))));
if ( name == "solve" ) {
countSolve = nCounter;
//exercise.setText("" + Utils.secToString(Integer.parseInt(String.valueOf(countExercise))));
}
StartOrStop = "Stop";
//Log.d("TIMER", "TimerTask run");
}
});
}};
// public void schedule (TimerTask task, long delay, long period)
t.schedule(mTimerTask, 200, 1000); //
}
public void stopTask(){
if(mTimerTask!=null){
TimerValue.setText("" + Utils.secToString(Integer.parseInt(String.valueOf(nCounter))));
//Log.d("TIMER", "timer canceled");
mTimerTask.cancel();
if( name == "solve" ) {
btnSolver.setBackgroundResource(R.drawable.solver);
TrackerDb3.insertOrUpdateMeditation(this, countSolve, MeditationTrackerActivity.ACTIVITIES.STUDY);
TimerValue.setText("00:00:00");
}
btnHelpBut.setClickable(true);
mButtonSavePoints.setClickable(true);
StartOrStop = "Start";
}
}
private void updateClientPointsAPI() {
// Tag used to cancel the request
String tag_string_req = "string_req_update_client_points";
String url = Utils.URL_UPDATE_CLIENT_POINTS;
final ProgressDialog pDialog = new ProgressDialog(mContext);
Toast.makeText(this, "Uploading Client Points to server..", Toast.LENGTH_SHORT).show();
// pDialog.setMessage("Uploading Client Points to server");
// pDialog.show();
StringRequest strReq = new StringRequest(Request.Method.POST,
url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, response.toString());
pDialog.hide();
JSONObject jObject = null;
try {
jObject = new JSONObject(response);
boolean serverResponse = jObject.getBoolean("Result");
if (serverResponse) {
Toast.makeText(mContext, "Points Sucessfully uploaded to server", Toast.LENGTH_SHORT).show();
Utils.alertPopup(mContext, "Points Sucessfully uploaded to server", mActivity);
} else {
String msg = jObject.getString("msg");
// Utils.alertPopup(mContext, msg, mActivity);
Toast.makeText(mContext, "Points Sucessfully uploaded to server", Toast.LENGTH_SHORT).show();
Utils.alertPopup(mContext, "Points Sucessfully uploaded to server", mActivity);
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(mContext, e.getMessage(), Toast.LENGTH_LONG)
.show();
return;
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
pDialog.hide();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
TelephonyInfo telephonyInfo = TelephonyInfo.getInstance(mActivity);
String imeiSIM1 = telephonyInfo.getImsiSIM1();
String imeiSIM2 = telephonyInfo.getImsiSIM2();
boolean isSIM1Ready = telephonyInfo.isSIM1Ready();
boolean isSIM2Ready = telephonyInfo.isSIM2Ready();
boolean isDualSIM = telephonyInfo.isDualSIM();
if (isDualSIM) {
params.put("deviceSerial1", imeiSIM1);
params.put("deviceSerial2", imeiSIM2);
params.put("isDualSIM", "1");
} else {
params.put("deviceSerial1", imeiSIM1);
params.put("isDualSIM", "0");
}
params.put("total_points",Points2);
return params;
}
};
// Adding request to request queue
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}
public void calculate() {
cnt++;
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putInt(Count, cnt);
editor.commit();
}
public void convertToImg(Integer cnt)
{
if ( Points2 != null ) {
cnt = Integer.valueOf(Points2);
}
// else if ( Points2 == null || cnt == 0 ) {
// Points2 = String.valueOf(mTextViewPoints);
// cnt = Integer.valueOf(Points2);
// }
int a = cnt;
Points2 = String.valueOf(cnt);
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putInt(Count,cnt);
editor.commit();
SharedPreferences.Editor final_cnt = sharedpreferences.edit();
final_cnt.putInt(FINAL_COUNT, cnt);
final_cnt.commit();
int num=0;
int digit=0;
while (a>=1)
{
num=a%10;
a=a/10;
Points = num;
switch(num)
{
case 0:
if(digit==0)
dr0.setImageResource(R.drawable.gold_streak_0_500_clr_624);
if(digit==1)
dr1.setImageResource(R.drawable.gold_streak_0_500_clr_624);
if(digit==2)
dr2.setImageResource(R.drawable.gold_streak_0_500_clr_624);
if(digit==3)
dr3.setImageResource(R.drawable.gold_streak_0_500_clr_624);
if(digit==4)
dr4.setImageResource(R.drawable.gold_streak_0_500_clr_624);
if(digit==5)
dr5.setImageResource(R.drawable.gold_streak_0_500_clr_624);
if(digit==6)
dr6.setImageResource(R.drawable.gold_streak_0_500_clr_624);
if(digit==7)
dr7.setImageResource(R.drawable.gold_streak_0_500_clr_624);
if(digit==8)
dr8.setImageResource(R.drawable.gold_streak_0_500_clr_624);
if(digit==9)
dr9.setImageResource(R.drawable.gold_streak_0_500_clr_624);
break;
case 1:
if(digit==0)
dr0.setImageResource(R.drawable.gold_streak_1_500_clr_625);
if(digit==1)
dr1.setImageResource(R.drawable.gold_streak_1_500_clr_625);
if(digit==2)
dr2.setImageResource(R.drawable.gold_streak_1_500_clr_625);
if(digit==3)
dr3.setImageResource(R.drawable.gold_streak_1_500_clr_625);
if(digit==4)
dr4.setImageResource(R.drawable.gold_streak_1_500_clr_625);
if(digit==5)
dr5.setImageResource(R.drawable.gold_streak_1_500_clr_625);
if(digit==6)
dr6.setImageResource(R.drawable.gold_streak_1_500_clr_625);
if(digit==7)
dr7.setImageResource(R.drawable.gold_streak_1_500_clr_625);
if(digit==8)
dr8.setImageResource(R.drawable.gold_streak_1_500_clr_625);
if(digit==9)
dr9.setImageResource(R.drawable.gold_streak_1_500_clr_625);
break;
case 2:
if(digit==0)
dr0.setImageResource(R.drawable.gold_streak_2_500_clr_654);
if(digit==1)
dr1.setImageResource(R.drawable.gold_streak_2_500_clr_654);
if(digit==2)
dr2.setImageResource(R.drawable.gold_streak_2_500_clr_654);
if(digit==3)
dr3.setImageResource(R.drawable.gold_streak_2_500_clr_654);
if(digit==4)
dr4.setImageResource(R.drawable.gold_streak_2_500_clr_654);
if(digit==5)
dr5.setImageResource(R.drawable.gold_streak_2_500_clr_654);
if(digit==6)
dr6.setImageResource(R.drawable.gold_streak_2_500_clr_654);
if(digit==7)
dr7.setImageResource(R.drawable.gold_streak_2_500_clr_654);
if(digit==8)
dr8.setImageResource(R.drawable.gold_streak_2_500_clr_654);
if(digit==9)
dr9.setImageResource(R.drawable.gold_streak_2_500_clr_654);
break;
case 3:
if(digit==0)
dr0.setImageResource(R.drawable.gold_streak_3_500_clr_648);
if(digit==1)
dr1.setImageResource(R.drawable.gold_streak_3_500_clr_648);
if(digit==2)
dr2.setImageResource(R.drawable.gold_streak_3_500_clr_648);
if(digit==3)
dr3.setImageResource(R.drawable.gold_streak_3_500_clr_648);
if(digit==4)
dr4.setImageResource(R.drawable.gold_streak_3_500_clr_648);
if(digit==5)
dr5.setImageResource(R.drawable.gold_streak_3_500_clr_648);
if(digit==6)
dr6.setImageResource(R.drawable.gold_streak_3_500_clr_648);
if(digit==7)
dr7.setImageResource(R.drawable.gold_streak_3_500_clr_648);
if(digit==8)
dr8.setImageResource(R.drawable.gold_streak_3_500_clr_648);
if(digit==9)
dr9.setImageResource(R.drawable.gold_streak_3_500_clr_648);
break;
case 4:
if(digit==0)
dr0.setImageResource(R.drawable.gold_streak_4_500_clr_650);
if(digit==1)
dr1.setImageResource(R.drawable.gold_streak_4_500_clr_650);
if(digit==2)
dr2.setImageResource(R.drawable.gold_streak_4_500_clr_650);
if(digit==3)
dr3.setImageResource(R.drawable.gold_streak_4_500_clr_650);
if(digit==4)
dr4.setImageResource(R.drawable.gold_streak_4_500_clr_650);
if(digit==5)
dr5.setImageResource(R.drawable.gold_streak_4_500_clr_650);
if(digit==6)
dr6.setImageResource(R.drawable.gold_streak_4_500_clr_650);
if(digit==7)
dr7.setImageResource(R.drawable.gold_streak_4_500_clr_650);
if(digit==8)
dr8.setImageResource(R.drawable.gold_streak_4_500_clr_650);
if(digit==9)
dr9.setImageResource(R.drawable.gold_streak_4_500_clr_650);
break;
case 5:
if(digit==0)
dr0.setImageResource(R.drawable.gold_streak_5_500_clr_643);
if(digit==1)
dr1.setImageResource(R.drawable.gold_streak_5_500_clr_643);
if(digit==2)
dr2.setImageResource(R.drawable.gold_streak_5_500_clr_643);
if(digit==3)
dr3.setImageResource(R.drawable.gold_streak_5_500_clr_643);
if(digit==4)
dr4.setImageResource(R.drawable.gold_streak_5_500_clr_643);
if(digit==5)
dr5.setImageResource(R.drawable.gold_streak_5_500_clr_643);
if(digit==6)
dr6.setImageResource(R.drawable.gold_streak_5_500_clr_643);
if(digit==7)
dr7.setImageResource(R.drawable.gold_streak_5_500_clr_643);
if(digit==8)
dr8.setImageResource(R.drawable.gold_streak_5_500_clr_643);
if(digit==9)
dr9.setImageResource(R.drawable.gold_streak_5_500_clr_643);
break;
case 6:
if(digit==0)
dr0.setImageResource(R.drawable.gold_streak_6_500_clr_630);
if(digit==1)
dr1.setImageResource(R.drawable.gold_streak_6_500_clr_630);
if(digit==2)
dr2.setImageResource(R.drawable.gold_streak_6_500_clr_630);
if(digit==3)
dr3.setImageResource(R.drawable.gold_streak_6_500_clr_630);
if(digit==4)
dr4.setImageResource(R.drawable.gold_streak_6_500_clr_630);
if(digit==5)
dr5.setImageResource(R.drawable.gold_streak_6_500_clr_630);
if(digit==6)
dr6.setImageResource(R.drawable.gold_streak_6_500_clr_630);
if(digit==7)
dr7.setImageResource(R.drawable.gold_streak_6_500_clr_630);
if(digit==8)
dr8.setImageResource(R.drawable.gold_streak_6_500_clr_630);
if(digit==9)
dr9.setImageResource(R.drawable.gold_streak_6_500_clr_630);
break;
case 7:
if(digit==0)
dr0.setImageResource(R.drawable.gold_streak_7_500_clr_615);
if(digit==1)
dr1.setImageResource(R.drawable.gold_streak_7_500_clr_615);
if(digit==2)
dr2.setImageResource(R.drawable.gold_streak_7_500_clr_615);
if(digit==3)
dr3.setImageResource(R.drawable.gold_streak_7_500_clr_615);
if(digit==4)
dr4.setImageResource(R.drawable.gold_streak_7_500_clr_615);
if(digit==5)
dr5.setImageResource(R.drawable.gold_streak_7_500_clr_615);
if(digit==6)
dr6.setImageResource(R.drawable.gold_streak_7_500_clr_615);
if(digit==7)
dr7.setImageResource(R.drawable.gold_streak_7_500_clr_615);
if(digit==8)
dr8.setImageResource(R.drawable.gold_streak_7_500_clr_615);
if(digit==9)
dr9.setImageResource(R.drawable.gold_streak_7_500_clr_615);
break;
case 8:
if(digit==0)
dr0.setImageResource(R.drawable.gold_streak_8_500_clr_647);
if(digit==1)
dr1.setImageResource(R.drawable.gold_streak_8_500_clr_647);
if(digit==2)
dr2.setImageResource(R.drawable.gold_streak_8_500_clr_647);
if(digit==3)
dr3.setImageResource(R.drawable.gold_streak_8_500_clr_647);
if(digit==4)
dr4.setImageResource(R.drawable.gold_streak_8_500_clr_647);
if(digit==5)
dr5.setImageResource(R.drawable.gold_streak_8_500_clr_647);
if(digit==6)
dr6.setImageResource(R.drawable.gold_streak_8_500_clr_647);
if(digit==7)
dr7.setImageResource(R.drawable.gold_streak_8_500_clr_647);
if(digit==8)
dr8.setImageResource(R.drawable.gold_streak_8_500_clr_647);
if(digit==9)
dr9.setImageResource(R.drawable.gold_streak_8_500_clr_647);
break;
case 9:
if(digit==0)
dr0.setImageResource(R.drawable.gold_streak_9_500_clr_617);
if(digit==1)
dr1.setImageResource(R.drawable.gold_streak_9_500_clr_617);
if(digit==2)
dr2.setImageResource(R.drawable.gold_streak_9_500_clr_617);
if(digit==3)
dr3.setImageResource(R.drawable.gold_streak_9_500_clr_617);
if(digit==4)
dr4.setImageResource(R.drawable.gold_streak_9_500_clr_617);
if(digit==5)
dr5.setImageResource(R.drawable.gold_streak_9_500_clr_617);
if(digit==6)
dr6.setImageResource(R.drawable.gold_streak_9_500_clr_617);
if(digit==7)
dr7.setImageResource(R.drawable.gold_streak_9_500_clr_617);
if(digit==8)
dr8.setImageResource(R.drawable.gold_streak_9_500_clr_617);
if(digit==9)
dr9.setImageResource(R.drawable.gold_streak_9_500_clr_617);
break;
default:
Toast.makeText(this,"error", Toast.LENGTH_SHORT).show();
}
digit++;
}
}
}
Upvotes: 1
Views: 131
Reputation: 162
I think what you searching for are background services.
Have a look at this: Starting Background Services
So the background service will be used for the timer and continues if you go to other activities (you should be aware of stopping it when closing you application)
Upvotes: 1