我在我的应用程序中添加了popup activity
,该应用程序在应用程序启动15秒后弹出。但是当我打开另一个activity
然后再回到我的main activity
弹出窗口时。我希望它只在用户第一次打开应用程序时出现。我应该做些什么改变?感谢帮助。
这是弹出代码:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (context != null) {
AlertDialog.Builder alert = new AlertDialog.Builder(context, R.style.MyAlertDialogStyle)
.setTitle("Title")
.setMessage("Message")
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// continue with delete
Intent intent = new Intent(MainActivity.this, WebActivity.class);
startActivity(intent);
}
})
.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialogInterface, int which) {
dialogInterface.dismiss();
// do nothing
}
});
mDialog = alert.create();
mDialog.getWindow().getAttributes().windowAnimations = R.style.MyAlertDialogStyle;
if (!((Activity) context).isFinishing())
mDialog.show();
// .setIcon(R.drawable.inr1)
// .show();
}
}
}, 15000);
答案 0 :(得分:2)
如果只需要在应用程序启动时弹出
,就可以执行此操作public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//Set some flag on global constant
}
}
答案 1 :(得分:0)
在sharedpreferences中保存一个布尔值,读取其值并确定第一次运行的天气。
这是可以帮助您的代码。
public void firstimeRun(boolean value) {
SharedPreferences sharedPreferences = getPrefrenceManager();
sharedPreferences.edit().putBoolean("key", value).apply();
}
public boolean isRunningForthefirstTime() {
SharedPreferences sharedPreferences = getPrefrenceManager();
return sharedPreferences.getBoolean("key", false);
}
private SharedPreferences getPrefrenceManager() {
return PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
}
答案 2 :(得分:0)
在sharedPrefrances中保存一个标签(计数器)当应用程序启动时,解释是第一次启动应用程序
答案 3 :(得分:0)
您可以像这样在应用程序类中使用全局变量。
public class global extends Application
// some Boolean variable to hold status
并确保将此类放在android清单应用程序标记
中android:name
答案 4 :(得分:0)
在MainActivity中添加此代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
if(sharedPreferences.getBoolean("IS_FIRST_TIME", true)) {
//show your dialog here
//...
//change the value of your sharedPreferences
sharedPreferences.edit().putBoolean("IS_FIRST_TIME", false).apply();
}
}
答案 5 :(得分:0)
请检查活动生命周期。
注意:删除处理程序。 注2:创建方法并调用对话框 注3:在生命周期中检查以下方法。
onPause(): 当活动进入后台但被(但)尚未被杀死时,被称为活动生命周期的一部分。 onResume()的对应部分。当活动B在活动A前面启动时,将在A上调用此回调。在A的onPause()返回之前不会创建B,所以一定不要在这里做任何冗长的事情。
答案 6 :(得分:0)
键入finish();在您启动startActivity(intent);
之后