对不起,我的英语不好。
我想按顺序显示两个吐司,换句话说,当第一个吐司持续时间结束时,第二个吐司出现。
这是我的代码:
Toast.makeText(this, "Toast1", Toast.LENGTH_SHORT).show();
Toast.makeText(this, "Toast2", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
但只会出现第二个 toast 消息。我认为当第二个 toast 的 show 方法将执行时,它将取消前一个 toast(第一个 toast)
我用这段代码解决了我的问题:
Toast.makeText(this, "Toast1", Toast.LENGTH_SHORT).show();
Handler handler =new Handler();
handler.postDelayed(new Runnable()
{
@Override
public void run()
{
Toast.makeText(MainActivity.this, "Toast2", Toast.LENGTH_SHORT).show();
}
},1000);
Run Code Online (Sandbox Code Playgroud)
但有没有更简单的解决方案?
我知道这个问题有很多堆栈溢出帖子,但我无法使用其中任何一个来解决我的问题。
我的应用程序仅适用于有限的人群(公司内部应用程序),因此我无法在应用程序商店中发布它,并且我希望当我在应用程序服务器上发布新版本时它会自动更新。
这是一个device admin没有root权限的应用程序。我发现这种方法可以实现这个目标,但它不起作用。
我的文件中有此权限AndroidManifest.xml来安装软件包:
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void installPackage(Context context, String filePath, String packageName)
throws IOException
{
Log.d(TAG, "installPackage: start");
PackageInstaller packageInstaller = context.getPackageManager().getPackageInstaller();
PackageInstaller.SessionParams params = new PackageInstaller.SessionParams(
PackageInstaller.SessionParams.MODE_FULL_INSTALL);
params.setAppPackageName(packageName);
// set params
int sessionId = packageInstaller.createSession(params);
PackageInstaller.Session session = packageInstaller.openSession(sessionId);
//
InputStream in = new FileInputStream(new File(filePath));
OutputStream out = session.openWrite(packageName, 0, -1);
IOUtils.copyStream(in, out);
//
session.fsync(out);
in.close();
out.close();
//
session.commit(PendingIntent.getActivity(context, 112233, new Intent(context, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT).getIntentSender()); …Run Code Online (Sandbox Code Playgroud)