自定义 Toast 在 Android 中的显示时间可以通过以下步骤实现:
- 在 AndroidManifest.xml 文件中添加以下权限和设置:<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"/>
<application>
...
<receiver android:name=".ToastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
</application>import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class ToastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String toastText = intent.getStringExtra("toastText");
int duration = intent.getIntExtra("duration", Toast.LENGTH_SHORT);
Toast.makeText(context, toastText, duration).show();
}
}import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 启动 Toast 广播
Intent toastIntent = new Intent("com.example.TOAST_ACTION");
toastIntent.putExtra("toastText", "这是一个自定义的 Toast 消息");
toastIntent.putExtra("duration", Toast.LENGTH_SHORT);
sendBroadcast(toastIntent);
}
}<action android:name="com.example.TOAST_ACTION"
android:permission="android.permission.BROADCAST_BADGE"
android:label="@string/app_name" />
- 创建一个名为 ToastReceiver.java 的类,该类将实现 BroadcastReceiver,用于在设备启动时自动显示 Toast。
- 在 MainActivity.java 文件中,添加以下代码以启动 Toast 广播:
- 在 AndroidManifest.xml 文件中,添加以下 Action,以便在接收到广播时,可以启动 Toast 显示:
这样,您就可以自定义 Toast 在 Android 中的显示时间了。如果您想要取消 Toast 显示,可以在 onReceive() 方法中添加以下代码:
Toast.makeText(context, "Toast cannot be shown", Toast.LENGTH_SHORT).show();
这将取消 Toast 显示。