假设我有一个方法,以一个int作为参数,
假设该方法只需要值0,1,2而不是其他int.
有没有办法"强制"该方法只接受0,1,2?
我有一个长期运行的应用程序Service.我需要确保当用户离开该离开Activity了Service车站.
因此我实现了onStop()关闭服务:
这是代码:
@Override
protected void onStop() {
super.onStop();
if(mService!=null)mService.stop();
stopService(new Intent(this, LocalService.class));
unbindService(mConnection);
stopService(intent);
}
Run Code Online (Sandbox Code Playgroud)
这是我的LogCat:
02-22 11:42:44.393: E/AndroidRuntime(1006): FATAL EXCEPTION: main
02-22 11:42:44.393: E/AndroidRuntime(1006): java.lang.RuntimeException: Unable to destroy activity {com.example.quotes/com.example.quotes.Quotes}: java.lang.IllegalArgumentException: Service not registered: com.example.quotes.Quotes$1@40cebd80
02-22 11:42:44.393: E/AndroidRuntime(1006): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3451)
02-22 11:42:44.393: E/AndroidRuntime(1006): at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3469)
02-22 11:42:44.393: E/AndroidRuntime(1006): at android.app.ActivityThread.access$1200(ActivityThread.java:141)
02-22 11:42:44.393: E/AndroidRuntime(1006): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1287)
02-22 11:42:44.393: E/AndroidRuntime(1006): at android.os.Handler.dispatchMessage(Handler.java:99)
02-22 11:42:44.393: E/AndroidRuntime(1006): at android.os.Looper.loop(Looper.java:137)
02-22 11:42:44.393: E/AndroidRuntime(1006): at android.app.ActivityThread.main(ActivityThread.java:5039) …Run Code Online (Sandbox Code Playgroud) 我需要调用一个方法(或启动一个活动,或其他东西)来更新包含应用所需数据的文件.
但是我希望它首次安装应用程序时只执行一次; 因为之后我会自己处理文件的更新.
请问怎么做?
谢谢你的任何建议
嗨,谢谢您的帮助。
我有一个使用AlarmManager在接下来的几周,几个月内每天设置一个警报的应用程序...
和
我有以下问题,我将尝试在以下几行中进行解释:
今天是星期三,
设置警报后,我打开应用程序并为MON,TUE,WED,THU,FRI,SAT,SUN设置警报:
MON和TUE的所有警报立即关闭,我最终收到4个Activity实例!
请我如何避免这种情况???
请看一段我的代码:
// SET THE ALARM FOR STARTING THE ACTIVITY
Intent smon = new Intent(ctxt, VideoActivty.class);
smon.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent psmon = PendingIntent.getActivity(ctxt, 0, smon, 0);
Calendar calSet = Calendar.getInstance();
calSet.set(Calendar.DAY_OF_WEEK, 2);
calSet.set(Calendar.HOUR_OF_DAY, hsmon);
calSet.set(Calendar.MINUTE, msmon);
calSet.set(Calendar.SECOND, 0);
calSet.set(Calendar.MILLISECOND, 0);
mgr.setRepeating(AlarmManager.RTC_WAKEUP, calSet.getTimeInMillis(),
7 * 24 * 60 * 60 * 1000, psmon);
// SET THE ALARM FOR KILLING THE ACTIVITY
Intent fmon = new Intent(ctxt, VideoActivty.class);
fmon.putExtra("finish", true);
PendingIntent pfmon = PendingIntent.getActivity(ctxt, 0, …Run Code Online (Sandbox Code Playgroud) 我有以下代码。
如您所见,该方法postTestResults应返回一个布尔值。
现在的问题是,在postTestResults我创建一个内部类之后AsyncHttpResponseHandler,我重写onSuccess并onFailure获取了AsyncHttpResponseHandler的结果。
但是如果我将return true放入onSuccess,onFailure显然它是行不通的,因为onSuccess并且onFailure必须返回void。
请问我如何应对这种情况?
public static Boolean postTestResults(DBManager db, String mDeviceId,
String mFirmwareVer, String mJobNo, int mTestType, Activity activity) {
MyRestClient.post(possibleEmail, device, results, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
return true; // does not work!
}
@Override
public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
// …Run Code Online (Sandbox Code Playgroud) 我在Linearlayout中有一个ListView.listview有一个自定义的cursoradapter.一切正常,但ListView不滚动.
任何建议超过欢迎!! 谢谢.毛里齐奥
这是MainActivity的XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/buttonAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="Aggiungi" />
<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是java代码的相关部分.
public class MainActivity extends Activity {
private DatabaseHelper db=null;
private Cursor tabellaCursor=null;
private ListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int[] to = new int[] {R.id.name_entry};
db = new DatabaseHelper(this);
tabellaCursor=db.getWritableDatabase().rawQuery("SELECT _id, colonna1, colo nna2, colonna3 FROM tabella ORDER BY _id", null);
ListAdapter adapter=new MyAdapter(this, R.layout.list_example_entry, tabe llaCursor, new String[]{"colonna1"},to); …Run Code Online (Sandbox Code Playgroud) 请帮忙.
Android: Unable to instantiate service...can't instantiate class com.stocktickerwidget.AppWidget$UpdateService; no empty constructor
我得到上面的错误,
我不懂为什么.
谢谢
public class UpdateService extends Service {
public UpdateService() {
//
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e("", "onStartCommand di AppWidget");
int[] appWidgetIds = intent.getIntArrayExtra("widgetsids");
final int N = appWidgetIds.length;
AppWidgetManager manager = AppWidgetManager.getInstance(this);
// Perform this loop procedure for each App Widget that belongs to
// this provider
for (int i = 0; i < N; i++) {
int appWidgetId …Run Code Online (Sandbox Code Playgroud) 很抱歉再次烦恼,我是Sqlite新手,需要一些帮助.
我正在尝试更新表中单行的单个字段.
我尝试这样做:
db.getWritableDatabase().execSQL("UPDATE data SET korean = "
+kopulito+ " WHERE _id = " + constantsCursor.getString(0), null);
Run Code Online (Sandbox Code Playgroud)
但是我得到了上面提到的错误.这是我的LogCat.
05-05 09:58:07.776: E/AndroidRuntime(30495): FATAL EXCEPTION: main
05-05 09:58:07.776: E/AndroidRuntime(30495): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.koday/com.example.koday.MainActivity}: java.lang.IllegalArgumentException: Empty bindArgs
05-05 09:58:07.776: E/AndroidRuntime(30495): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
05-05 09:58:07.776: E/AndroidRuntime(30495): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-05 09:58:07.776: E/AndroidRuntime(30495): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-05 09:58:07.776: E/AndroidRuntime(30495): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
05-05 09:58:07.776: E/AndroidRuntime(30495): at android.os.Handler.dispatchMessage(Handler.java:99)
05-05 09:58:07.776: E/AndroidRuntime(30495): at android.os.Looper.loop(Looper.java:130)
05-05 09:58:07.776: E/AndroidRuntime(30495): at android.app.ActivityThread.main(ActivityThread.java:3683)
05-05 09:58:07.776: E/AndroidRuntime(30495): at java.lang.reflect.Method.invokeNative(Native Method)
05-05 09:58:07.776: …Run Code Online (Sandbox Code Playgroud) 今天我打开了Android Studio,这就是我发现的:

我的资源文件(字符串,样式,尺寸,颜色)也是如此:

public abstract class SequenceItemHolder {
public SequenceItemHolder(View itemView) {
}
public abstract void setData(SequenceRowElement.RowElement rowElement);
public static class TesteItemHolder extends SequenceItemHolder {
public TesteItemHolder(View itemView) {
}
@Override
public void setData(SequenceRowElement.TestRowElement rowElement) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
请问有人可以解释我为什么在覆盖中出现编译错误?
请问如何修复它(不使用界面)?
注意:TestRowElement扩展RowElement
android ×7
java ×3
service ×2
alarmmanager ×1
constructor ×1
covariance ×1
installation ×1
listview ×1
scroll ×1
sql-update ×1
sqlite ×1