Ich möchte den Status des Benutzers, den er/sie benutzt, aktualisieren.onStop, onResume, Onpause-Funktion läuft nicht
Wenn sich die App im Vordergrund befindet, muss der Status online sein. Andernfalls, wenn die App im Hintergrund ausgeführt wird, muss der Status offline sein. Ich verwende eine AsyncTask
, um die Hintergrundaufgaben zu berechnen. Wenn ich die Methoden onStop
, onResume
und verwende, hängt die Hintergrundaktivität den UI-Thread.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.setTitle("Welcome ");
toolbar = (Toolbar) findViewById(R.id.signoutToolbar);
setSupportActionBar(toolbar);
viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(), getApplicationContext()));
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
tabLayout.getTabAt(0).setIcon(R.drawable.common_full_open_on_phone);
tabLayout.getTabAt(1).setIcon(R.drawable.messenger_bubble_large_white);
tabLayout.getTabAt(2).setIcon(R.drawable.messenger_bubble_large_white);
mAuth = FirebaseAuth.getInstance();
mlisterner = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if (firebaseAuth.getCurrentUser() == null) {
Intent intent = new Intent(MainActivity.this, GetStarted.class);
// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//check.close();
// TempCdb.close();
finish();
startActivity(intent);
} else {
Firebase.setAndroidContext(getApplicationContext());
currentuser = FirebaseAuth.getInstance().getCurrentUser();
email_Current = currentuser.getEmail();
email_Current = email_Current.replace(".", "@");
//Toast.makeText(this, ""+email_Current, Toast.LENGTH_SHORT).show();
ref = new Firebase("https://zumi-60a8f.firebaseio.com/Users/");
ref.child(email_Current).child("AppStatus").setValue("Online");
// startService(new Intent(getBaseContext(),BGserviceForCurrentUser.class));
TempCdb = getApplicationContext().openOrCreateDatabase("zumi1.db", Context.MODE_PRIVATE, null);
TempCdb.execSQL(TABLE_CREATE);
if (mAuth.getCurrentUser() != null) {
Cursor check1 = TempCdb.rawQuery("select * from current_Luser", null);
if (check1.getCount() == 0) {
// Toast.makeText(this, "This is the First Time", Toast.LENGTH_SHORT).show();
new BGSERIVCE().execute();
check1.close();
} else {
Toast.makeText(getApplicationContext(), "This is the NOT First Time", Toast.LENGTH_SHORT).show();
check1.close();
}
check1.close();
TempCdb.close();
}
}
}
};
db = FirebaseDatabase.getInstance().getReference().child("Users");
db.keepSynced(true);
}
String url;
public class BGSERIVCE extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
played = 1;
FirebaseUser currentuser = FirebaseAuth.getInstance().getCurrentUser();
Cdb = getApplicationContext().openOrCreateDatabase("zumi1.db", Context.MODE_PRIVATE, null);
Cdb.execSQL(TABLE_CREATE);
Firebase.setAndroidContext(getApplicationContext());
// Toast.makeText(getApplicationContext(), "background Running....", Toast.LENGTH_SHORT).show();
String email_Current = currentuser.getEmail().replace(".", "@");
ref = new Firebase("https://zumi-60a8f.firebaseio.com/Users/");
values = new ContentValues();
if (Cdb.isOpen()) {
ref.child(email_Current).addValueEventListener(new com.firebase.client.ValueEventListener() {
@Override
public void onDataChange(com.firebase.client.DataSnapshot snapshot) {
for (com.firebase.client.DataSnapshot postSnapshot : snapshot.getChildren()) {
//Adding it to a string
Cdb.execSQL("delete from current_Luser");
url = snapshot.child("image").getValue().toString();
String Dname = snapshot.child("Dname").getValue().toString(); // NAME
String email = snapshot.child("email_phone").getValue().toString().replace("@zumi.com", ""); // [email protected]
String status_E = snapshot.child("status").getValue().toString();
// private static final String TABLE_CREATE="create table if not exists current_Luser (email_phone TEXT, status TEXT, Dname TEXT,image blob,snyc TEXT)";
values.put("email_phone", "\"" + email + "\"");
values.put("status", "\"" + status_E + "\"");
values.put("Dname", "\"" + Dname + "\"");
values.put("snyc", "\"" + "Yes" + "\"");
}
//Toast.makeText(MainActivity.this, ""+values.toString(), Toast.LENGTH_SHORT).show();
// new inputstream().execute(url);
Cdb.execSQL("insert into current_Luser(email_phone,status,Dname,snyc) values (" + values.get("email_phone") + "," + values.get("status") + "," + values.get("Dname") + "," + values.get("snyc") + ")");
Toast.makeText(MainActivity.this, "Complete BG Process", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(FirebaseError firebaseError) {
//System.out.println("The read failed: " + firebaseError.getMessage());
}
});
}
// Cdb.close();
return null;
}
} // BG SERVICE__UPDATES CURRENT SQLITE
/* @Override
protected void onPause() {
Firebase.setAndroidContext(getApplicationContext());
currentuser = FirebaseAuth.getInstance().getCurrentUser();
if(currentuser==null)
{
}
else {
email_Current = currentuser.getEmail();
email_Current = email_Current.replace(".", "@");
//Toast.makeText(this, ""+email_Current, Toast.LENGTH_SHORT).show();
ref = new Firebase("https://zumi-60a8f.firebaseio.com/Users/");
ref.child(email_Current).child("AppStatus").setValue("Offline");
}
super.onPause();
}
@Override
protected void onResume() {
Firebase.setAndroidContext(getApplicationContext());
currentuser = FirebaseAuth.getInstance().getCurrentUser();
if(currentuser==null)
{
}
else {
email_Current = currentuser.getEmail();
email_Current = email_Current.replace(".", "@");
//Toast.makeText(this, ""+email_Current, Toast.LENGTH_SHORT).show();
ref = new Firebase("https://zumi-60a8f.firebaseio.com/Users/");
ref.child(email_Current).child("AppStatus").setValue("Online");
}
super.onResume();
}
*/
@Override
protected void onStart() {
super.onStart();
// checkuserexist();
// new BGSERIVCE().execute();
mAuth.addAuthStateListener(mlisterner);
}
bitte weitere Details mit Code hinzufügen. – W4R10CK
@ W4R10CK Bitte den Code finden ... Pls help ... –
können Sie Ihren Code auf nur die Dinge verkürzen, die wirklich wichtig sind? dies ist nur zu viel Code zu überprüfen –