![](/img/trans.png)
[英]How to launch activity only once when app is opened for first time after an update?
[英]Activity load again in first time app Launch
我想成功打开add.activity,但它打开了我的主要活动,加载主要活动后它成功加载了add.activity。 我想从 luckywheel.activity 成功打开 add.activity 但它切断了 luckywheel.activity 并打开 home.activity 然后它成功打开 add.activity.Bellow 是更好理解的例子
“A”到“B”,然后“B”到“C”,但它削减了“B”活动然后它重新创建“A”然后它进入“C”
我使用 firebase 数据库。我从文件中删除了 updatechildren 代码并解决了,但我需要使用 firebase 并更新一些孩子
final DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Users");
final GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(getApplicationContext());
if (currentUser != null) {
final String uid = currentUser.getUid();
reference.child(uid).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
UserInfo info = dataSnapshot.getValue(UserInfo.class);
assert info != null;
String coins = info.getCoins();
assert account != null;
String email = account.getEmail();
String name = info.getName();
//final Date currentTime = Calendar.getInstance().getTime();
int up = Integer.parseInt(coins);
int addition = up + 10;
String updatedCoins = String.valueOf(addition);
HashMap<String, Object> map = new HashMap<>();
map.put("coins", updatedCoins);
map.put("email", email);
map.put("name", name);
map.put("uid", uid);
reference.child(uid).updateChildren(map).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
loadingDialog.show();
final int intervalTime = 3000;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
loadingDialog.dismiss();
Intent opensuccessful = new Intent(getApplicationContext(), videosucess.class);
startActivity(opensuccessful);
}
}, intervalTime);
}else {
loadingDialog.dismiss();
Toast.makeText(ChoiceSelection.this, "Failed: Check your internet!", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError){
}
请检查您的清单文件并将其设置为启动器,以便在您在 lickwheel 活动中执行此操作之前不会加载主要活动
<activity android:name=".luckywheel">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
您可以在successfullyadd.activity
添加.activity 之前清除BackStack
Intent opensuccessful = new Intent(getApplicationContext(), videosucess.class);
opensuccessful.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(opensuccessful);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.