应用程序启动后仅显示弹出活动

时间:2015-12-11 07:17:38

标签: android android-fragments android-intent android-activity popup

我在我的应用程序中添加了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);

7 个答案:

答案 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);

之后