我的应用程序的这一部分的目标是始终在后台运行重复警报,每15分钟从服务器端机器学习算法获取一个新预测,更新应用程序.
我目前已经实现了所需行为的骨架,以确保我的方法正确.这个骨架应该每隔10秒触发一次警报,说明警报正在工作.但是,在我最初设置闹钟后,我再也没有看到另一条消息.我还包括一个写入控制台,但这似乎永远不会出现,让我相信我不完全了解报警接收器的工作原理.
这是我的主要活动类,它实例化警报和接收器:
public class MainActivity extends AppCompatActivity implements
TimePickerFragment.FragmentCallbacks {
private PendingIntent pendingIntent;
private AlarmManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Retrieve a PendingIntent that will perform a broadcast
Intent alarmIntent = new Intent(this, PredictionUpdateReceiver.class);
pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
startAlarm();
//...
}
//...
public void startAlarm() {
manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
int interval = 10000;
manager.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis(), interval, pendingIntent);
Toast.makeText(this, "Alarm Set", Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的报警接收器类:
public class PredictionUpdateReceiver extends BroadcastReceiver {
@Override …Run Code Online (Sandbox Code Playgroud) android alarmmanager android-intent android-alarms repeatingalarm
test.class类型是对的吗?如何?我该怎么办?
<Preference
android:key="test"
android:title="test"
android:summary="test">
<intent android:action="test.class" > <=== **ERROR/AndroidRuntime(2384): android.content.ActivityNotFoundException: No Activity found to handle Intent**
</intent>
</Preference>
Run Code Online (Sandbox Code Playgroud) 我想创建这样的服务,当Android设备上安装任何新应用程序时启动.那么如何知道安装在Android设备上的任何应用程序,是否有任何Intent事件被触发?
android android-intent android-service android-applicationinfo
可能重复:
如何比较Java中的字符串?
我有2个类,比如a.class和b.class
我想在a.class中使用intent将数组从a发送到b
Intent intent = new Intent(this,b.class);
intent.putExtra("stringtext", "1");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
在b.class中,我用这个来捕获意图值
Intent it = getIntent();
String id = it.getStringExtra("stringtext");
Run Code Online (Sandbox Code Playgroud)
当我尝试打印id时,它会给我"1"但是当我在if子句中使用id时我没有工作,我试试这个
if(id=="1")
{
teks.setText("its one");
}
else
{
teks.setText("not one";
}
Run Code Online (Sandbox Code Playgroud)
怎么会发生这种情况?
这只是一个初学者的问题,但即使借助他人的问题(这确实增加了我的知识),我仍然不确定我做错了什么.我直接运行了SupWorld类(通过清单)并且它有效,所以我认为问题是我没有正确地调用类.我已经尝试了我找到的所有建议,但每次它都告诉我"不幸的是,测试代码已停止." 在模拟器中.(测试代码是我项目的名称.)我在代码中留下了一些失败的尝试作为注释来帮助确定问题.我当然尝试使用"this"来获取我的内容而没有成功.任何有用的知识将不胜感激!谢谢.
package com.evorlor.testcode;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class MainActivity extends Activity {
// Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
// context = this;
Intent intent = new Intent(getApplicationContext(), SupWorld.class);
startActivity(intent);
}
// @Override
// public boolean onCreateOptionsMenu(Menu menu) {
// // Inflate the menu; this adds items to the action bar if it is present.
// getMenuInflater().inflate(R.menu.activity_main, menu);
// return true;
// }
}
Run Code Online (Sandbox Code Playgroud)
我的logCat(我不熟悉logCat是什么以及如何使用它.我将它作为文本文件导出,这就是所有出现的.如果这不是你想要的,请告诉我:
12-10 21:11:38.013: W/Trace(1094): Unexpected value from …Run Code Online (Sandbox Code Playgroud) 我是android新手,现在正在读一本叫做的书'Professional.Android.2.Application.Development'.我已经看到了一些开始应用程序开发的代码,我注意到大多数java代码都是由意图组成的.
我想知道为什么我们使用意图而不是事件或服务.
我所知道的意图是它们是要执行的操作的抽象描述.
我也想知道Android中意图的重要性.
任何人都可以向我解释,因为我是新的,有点困惑.
如何在android中实现部分重叠的屏幕.请在下面找到图片.

它有3个屏幕,部分与其他屏幕重叠.建议在android中实现此UI的可能方法.提前致谢
我有一个错误:
while compiling: CREATE_TABELLOGIN(IDINTEGER PRIMARY KEY AUTOINCREMENT,USERNAME text,PASSWORD text)
Run Code Online (Sandbox Code Playgroud)
数据库类:
public class LoginDataBaseAdapter {
static final String DATABASE_NAME="login.db";
static final int DATABASE_VERSION=1;
public static final int NAME_COLUMN=1;
static final String DATABASE_CREATE= "CREATE_TABEL" + "LOGIN" +
"(" + "ID" + "INTEGER PRIMARY KEY AUTOINCREMENT," + "USERNAME text,PASSWORD text);";
Run Code Online (Sandbox Code Playgroud) 我有以下简单代码可以拍摄一张照片并返回到呼叫者活动:
Intent camera_intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri uriSavedImage = Uri.fromFile(new File(Environment
.getExternalStorageDirectory()
+ directory_path
+ "/"
+ Calendar.getInstance().get(Calendar.MILLISECOND)
+ ".jpg"));
camera_intent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(camera_intent, 1);
MainActivity.this.startActivityForResult(camera_intent, 0);
Run Code Online (Sandbox Code Playgroud)
但是,只有两张照片后,相机意图才会关闭。因此,在我拍摄一张照片后,相机意图仍然有效。在我拍摄另一张照片之后,直到现在,相机意图才被关闭onActivityResult并被调用。
怎么了?
编辑:我尝试将日志消息打印到onActivityResult中,并且我注意到onActivityResult被调用了两次,但是仅在第二张图片之后(并且在相机意图关闭之后)
我在运行时收到错误.单击按钮时发生Logcat错误.
java.lang.IllegalStateException: Could not find a method onClickWebBrowser(View) in the activity class com.steph.intents.IntentActivity for onClick handler on view class android.widget.Button with id 'btn_webbrowser'
堆栈跟踪:
E/AndroidRuntime(1931): FATAL EXCEPTION: main
E/AndroidRuntime(1931): Process: com.steph.intents, PID: 1931
E/AndroidRuntime(1931): java.lang.IllegalStateException: Could not find a method onClickWebBrowser(View) in the activity class com.steph.intents.IntentActivity for onClick handler on view class android.widget.Button with id 'btn_webbrowser'
E/AndroidRuntime(1931): at android.view.View$1.onClick(View.java:3810)
E/AndroidRuntime(1931): at android.view.View.performClick(View.java:4438)
E/AndroidRuntime(1931): at android.view.View$PerformClick.run(View.java:18422)
E/AndroidRuntime(1931): at android.os.Handler.handleCallback(Handler.java:733)
E/AndroidRuntime(1931): at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(1931): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(1931): at android.app.ActivityThread.main(ActivityThread.java:5017)
E/AndroidRuntime(1931): at java.lang.reflect.Method.invokeNative(Native …Run Code Online (Sandbox Code Playgroud) android ×10
android-intent ×10
java ×2
action ×1
alarmmanager ×1
preferences ×1
sqlite ×1
string ×1