【发布时间】:2013-04-20 06:26:43
【问题描述】:
当我的主要活动启动时,我试图显示一个随机图像 5 秒(我有 3 个图像)。 (这是一种如何使用我的应用程序和一些广告的教程)。但我只想每天显示一次。我需要使用 SharedPreferences 对吗?这是最好的方法,不是吗?所以我发现了这个:
ImageView imgView = new ImageView(this);
Random rand = new Random();
int rndInt = rand.nextInt(n) + 1; // n = the number of images, that start at idx 1
String imgName = "img" + rndInt;
int id = getResources().getIdentifier(imgName, "drawable", getPackageName());
imgView.setImageResource(id);
显示随机图像。还有这个:
public class mActivity extends Activity {
@Overrride
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.id.layout);
// Get current version of the app
PackageInfo packageInfo = this.getPackageManager()
.getPackageInfo(getPackageName(), 0);
int version = packageInfo.versionCode;
SharedPreferences sharedPreferences = this.getPreferences(MODE_PRIVATE);
boolean shown = sharedPreferences.getBoolean("shown_" + version, false);
ImageView imageView = (ImageView) this.findViewById(R.id.newFeature);
if(!shown) {
imageView.setVisibility(View.VISIBLE);
// "New feature" has been shown, then store the value in preferences
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.put("shown_" + version, true);
editor.commit();
} else
imageView.setVisibility(View.GONE);
}
在应用更新后显示应用的当前版本。我试图为我的应用程序调整这些代码,但我失败了。我还需要图像必须仅显示 5 秒并自动关闭。
嘿,又是我。我现在得到了这段代码,它运行良好:
boolean firstboot = getSharedPreferences("BOOT_PREF",MODE_PRIVATE).getBoolean("firstboot", true);
getSharedPreferences("BOOT_PREF",MODE_PRIVATE).edit().
putBoolean("firstboot", true).commit();
if(firstboot){
Intent webBrowser = new Intent(getApplicationContext(), WebBrowser.class);
// dismiss it after 5 seconds
webBrowser.putExtra("url", "http://sce.jelocalise.fr/mobile/ajax/interstitiel.php");
startActivity(webBrowser);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent MyIntent = new Intent(getApplicationContext(), Home.class);
startActivity(MyIntent);
}
}
}, 5000);
getSharedPreferences("BOOT_PREF",MODE_PRIVATE).edit().
putBoolean("firstboot", false).commit();
}
我现在想要的:我的 webview 上有一个取消按钮,当我点击它时,它会完成 webBrowser 活动。问题是当我单击取消按钮时,处理程序不会停止,并且在 5 秒后它会重新加载 Home 活动(我知道这是正常的)。我只希望取消按钮杀死处理程序。我已经尝试过 handler.removeCallbacks 方法,但我并不真正了解它是如何工作的。
【问题讨论】:
-
嗨,在谷歌上搜索“闪屏”,我想这就是你要找的东西,你只需要检查一个偏好,它会显示最后一次显示的时间和今天的时间看看它今天是否已经可用
-
您好,感谢您的帮助,但我已经得到了启动画面。我忘了说这个。在我的第三个活动(这是我的主要活动)中,我想展示一些我所做的解释和广告(因为我有其他产品)。
-
Thomas,您需要开始一个新问题。您现在所问的与您最初的问题完全无关。