每次打开 android 个应用时显示 toast
Show toast every time opens android app
我想在每次打开应用程序时都祝酒词。上面的代码有效,但每次屏幕旋转时它也会显示欢迎祝酒词。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(getApplicationContext(), "WELCOME!!!" , Toast.LENGTH_LONG).show();
有没有办法每次打开应用只显示一次吐司?
清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.im.gernan" >
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<application
android:name="com.example.im.gernan.MyAppCtx"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
如果你的 toast 已经显示,你可以在你的 ApplicationContext 中有一个布尔值或一个单例存储在某个地方 - 如果是,不要再次显示 toast
如评论中所述,添加一个标志以指示是否已显示。
一个地方可能是 Activity 本人,但 activity 可以在应用程序处于活动状态时完成并重新打开。应用程序上下文的生命周期只知道 onCreate 和 onDestroy 并保持 hole 应用程序会话,这是为了让你的吐司真正只在应用程序启动后出现。
示例:
这可能是应用程序上下文 class,在清单中作为应用程序引用。
public MyAppCtx extends Application {
public boolean toasted = false;
}
然后在任何activity中你可以这样做:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
if (!((MyAppCtx)getApplicationContext()).toasted) {
Toast.makeText(getApplicationContext(), "WELCOME!!!" , Toast.LENGTH_LONG).show();
((MyAppCtx)getApplicationContext()).toasted = true;
}
...
}
现在,当此 activity 启动时,它会检查应用程序上下文是否表示欢迎。如果不是,它会显示并设置开关。就这样。玩得开心
声明一个变量
static boolean value=false;
if(value==false)
{
value=true;
//show welcome toast
}
我想在每次打开应用程序时都祝酒词。上面的代码有效,但每次屏幕旋转时它也会显示欢迎祝酒词。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(getApplicationContext(), "WELCOME!!!" , Toast.LENGTH_LONG).show();
有没有办法每次打开应用只显示一次吐司?
清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.im.gernan" >
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<application
android:name="com.example.im.gernan.MyAppCtx"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
如果你的 toast 已经显示,你可以在你的 ApplicationContext 中有一个布尔值或一个单例存储在某个地方 - 如果是,不要再次显示 toast
如评论中所述,添加一个标志以指示是否已显示。 一个地方可能是 Activity 本人,但 activity 可以在应用程序处于活动状态时完成并重新打开。应用程序上下文的生命周期只知道 onCreate 和 onDestroy 并保持 hole 应用程序会话,这是为了让你的吐司真正只在应用程序启动后出现。
示例:
这可能是应用程序上下文 class,在清单中作为应用程序引用。
public MyAppCtx extends Application {
public boolean toasted = false;
}
然后在任何activity中你可以这样做:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
if (!((MyAppCtx)getApplicationContext()).toasted) {
Toast.makeText(getApplicationContext(), "WELCOME!!!" , Toast.LENGTH_LONG).show();
((MyAppCtx)getApplicationContext()).toasted = true;
}
...
}
现在,当此 activity 启动时,它会检查应用程序上下文是否表示欢迎。如果不是,它会显示并设置开关。就这样。玩得开心
声明一个变量
static boolean value=false;
if(value==false)
{
value=true;
//show welcome toast
}