lvzhanlong 2016-01-05 03:39 采纳率: 0%
浏览 2662

android 应用被回收后 重新打开会先显示广告页

android 应用在后台运行被系统回收后,再次切回应用会先出现启动应用的第一个界面再跳到之前应用被回收之前的界面,例如微信的那个第一张地球图片的那个界面

  • 写回答

2条回答 默认 最新

  • ProXin 2016-01-05 05:19
    关注

    AndroidManifest.xml 中添加:
    android:name="com.activity.SplashActivity"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    
    
                广告页面Activity:
                public class SplashActivity extends Activity {
    boolean isFirstIn = false;
    
    private static final int GO_HOME = 1000;
    private static final int GO_GUIDE = 1001;
    // 延迟3秒
    private static final long SPLASH_DELAY_MILLIS = 3000;
    
    private static final String SHAREDPREFERENCES_NAME = "first_pref";
    
    /**
     * Handler:跳转到不同界面
     */
    private Handler mHandler = new Handler() {
    
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
            case GO_HOME:
                goHome();
                break;
            case GO_GUIDE:
                goGuide();
                break;
            }
            super.handleMessage(msg);
        }
    };
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);
    
        init();
    }
    
    private void init() {
        // 读取SharedPreferences中需要的数据
        // 使用SharedPreferences来记录程序的使用次数
        SharedPreferences preferences = getSharedPreferences(
                SHAREDPREFERENCES_NAME, MODE_PRIVATE);
    
        // 取得相应的值,如果没有该值,说明还未写入,用true作为默认值
        isFirstIn = preferences.getBoolean("isFirstIn", true);
    
        // 判断程序与第几次运行,如果是第一次运行则跳转到引导界面,否则跳转到主界面
        if (!isFirstIn) {
            // 使用Handler的postDelayed方法,3秒后执行跳转到MainActivity
            mHandler.sendEmptyMessageDelayed(GO_HOME, SPLASH_DELAY_MILLIS);
        } else {
            mHandler.sendEmptyMessageDelayed(GO_GUIDE, SPLASH_DELAY_MILLIS);
        }
    
    }
    
    private void goHome() {
        Intent intent = new Intent(SplashActivity.this, LoginActivity.class);
        SplashActivity.this.startActivity(intent);
        SplashActivity.this.finish();
    }
    
    private void goGuide() {
        Intent intent = new Intent(SplashActivity.this, GuideActivity.class);
        SplashActivity.this.startActivity(intent);
        SplashActivity.this.finish();
    }
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀