我正在尝试使用Android架构组件编写示例应用程序,但即使在尝试了几天之后我也无法使用它.它给了我以上例外.
生命周期所有者: -
public class MainActivity extends LifecycleActivity {
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.tv_user);
PostViewModel viewModel = ViewModelProviders.of(this).get(PostViewModel.class);
viewModel.loadPosts();
viewModel.getPost().observe(this, new Observer<Post>() {
@Override
public void onChanged(@Nullable Post post) {
if(post != null) {
textView.setText(post.toString());
}
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
视图模型: -
public class PostViewModel extends ViewModel {
private MediatorLiveData<Post> post;
private PostRepository postRepo;
PostViewModel() {
post = new MediatorLiveData<>();
postRepo = new PostRepository();
}
public LiveData<Post> loadPosts() {
post.addSource(postRepo.getPost(),
post -> this.post.setValue(post)
); …Run Code Online (Sandbox Code Playgroud) 这是我的Activity代码,
Long time = new GregorianCalendar().getTimeInMillis()+20000;//Setting alarm after 20 sec
Intent intentAlarm = new Intent("alarm");
intentAlarm.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intentAlarm.putExtra("req_code",10);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,10, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, time, pendingIntent);
Run Code Online (Sandbox Code Playgroud)
这些是我在我的应用中拥有的所有权限,
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="com.myapp.pack.permission.SET_ALARM"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Run Code Online (Sandbox Code Playgroud)
这是我的BroadcastReceiver代码,
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences sharedPreferences =
context.getSharedPreferences( "mydata", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("elligible",true);
editor.apply();
}
Run Code Online (Sandbox Code Playgroud)
我BroadcastReceiver在清单上注册了我的,
<receiver …Run Code Online (Sandbox Code Playgroud) android android-intent android-alarms android-broadcast android-broadcastreceiver
我创建了一个小型应用程序,可以从FCM控制台接收推送通知.
我现在要做的是向所有使用API安装应用程序的Android手机发送推送通知.这就是我完全迷失的地方.没有收集所有注册ID,是否无法将其发送到所有电话?这仅适用于控制台,而不适用于API吗?
提前
android google-api push-notification firebase firebase-cloud-messaging
我今天开始使用Python并遇到一个奇怪的问题.我正在使用Python 3.5.1和Sublime文本3并编写了一个基本的hello world程序.
print('Hello World')
保存此文件名为python1.py并按下Ctrl + B执行它,但控制台上显示的唯一内容是[在XYZs中完成],这意味着程序成功执行但未显示输出.
注意:我使用的是Windows 8(如果这很重要)并且Python安装正确,我可以毫无问题地从CMD运行我的程序.
我使用本教程在我的应用程序中实现下载文件:https : //www.learn2crack.com/2016/05/downloading-file-using-retrofit.html
问题是,如果互联网速度很慢或网络波动甚至一秒钟,下载将永久停止。应用程序是否可以通过某种方式检测到互联网未激活(已连接但实际上网络不工作),然后在互联网正常时暂停下载并恢复。
或者一些替代方案,这样用户就不会感到沮丧?
我在我的应用程序中使用 Kotlin 协程,并选择了 firebase 作为我的数据库和存储选择。在探索 firebase 之后,我意识到它的所有 API 都是异步的,并且异步调用的结果在回调中返回,而摆脱回调是我在我的应用程序中使用 Kotlin 协程的主要原因。
这是我编写的将文件上传到 firebase 云存储的代码,但它给出了“任务尚未完成”错误。
private suspend fun saveImage(filePath: String): String? {
val storage = FirebaseStorage.getInstance("gs://myapp-9a648.appspot.com/")
val storageRef = storage.reference
val file = Uri.fromFile(File(filePath))
val imageRef = storageRef.child("images/${file.lastPathSegment}")
return withContext(Dispatchers.IO) {
imageRef.putFile(file).snapshot.storage.downloadUrl.result.toString()
}
}
Run Code Online (Sandbox Code Playgroud)
E/AndroidRuntime:致命异常:主进程:pk.com.kotlinapp,PID:7491 java.lang.IllegalStateException:com.google.android.gms.common.internal.Preconditions.checkState(未知来源)处的任务尚未完成在 com.google.android.gms.tasks.zzu.zzb(未知来源)在 com.google.android.gms.tasks.zzu.getResult(未知来源)在 prk.com.kotlinapptest.DatabaseManager$saveImage$2.invokeSuspend( DatabaseManager.kt:28) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:241) at kotlinx.coroutines.scheduling.CoroutineSafelyScheduler. (CoroutineScheduler.kt:594) 在 kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60) 在 kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:740)
有什么方法可以将文件上传到 firebase 云存储并获取下载 URL,而无需在成功回调中获取下载 URL?
如何使用 Java Streams 解决以下问题?
鉴于:-
class Dress {
private String brandName;
private String color;
public String getBrandName() {
return brandName;
}
public String getColor() {
return color;
}
}
List<Dress> dresses = getDresses(); // API call
Run Code Online (Sandbox Code Playgroud)
必需的:-
// Number of dresses per color
Map<String, Integer> colorToCountMap;
Run Code Online (Sandbox Code Playgroud) 代码:-
val num = 12.12
val num2: Float = num.toFloat() // Works
val num3: Float = num as Float // Exception
Run Code Online (Sandbox Code Playgroud)
例外:-
线程“main”中的异常java.lang.ClassCastException:类java.lang.Double无法转换为类java.lang.Float(java.lang.Double和java.lang.Float位于加载程序'bootstrap的模块java.base中')
谁能告诉我为什么num.toFloat()工作正常但num as Float出现错误?这两种不同的语法不应该做同样的事情吗?
我正在尝试使用以下代码在我的 SD 卡上创建一个文件夹,但它失败了。这是我写的代码onCreate():
File test = new File(Environment.getExternalStorageDirectory(),"my_directory");
if(!test.exists())
{
try
{
if (test.mkdir())
{
Log.d("xxx", "directory created");
}
else
{
Log.d("xxx", "directory creation failed");
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
else
{
Log.d("xxx","directory already present");
}
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时没有给出任何异常,它只是打印
directory creation failed日志。
我也给予了以下许可,
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我用的是小米红米note 3,安卓版本是6.0.1。
android ×6
firebase ×2
kotlin ×2
android-architecture-components ×1
google-api ×1
java ×1
java-stream ×1
mvvm ×1
python ×1
python-3.x ×1
retrofit ×1
sublimetext3 ×1