Articles of android activity

Android – 从Flavor中删除活动

如何从app风格中删除活动? 这是一个简化的例子,我有一个应用程序,它有以下两种口味(付费和免费)。 该应用程序很小,只有3个活动(MainActivity,ActivityOne和ActivityTwo)。 付费应用程序不需要任何限制,因为它将使用完整的代码库。 然而,免费应用程序要求它可以让用户访问MainActivity和ActivityTwo,而不是ActivityOne。 如何在编译代码时执行“Manifest Merge”,以便免费版本中不存在ActivityOne? 换句话说,应该如何创建src / free / AndroidManifest.xml以使免费应用程序没有ActivityOne? 下面是app的build.gradle文件: apply plugin: ‘com.android.application’ android { compileSdkVersion 21 buildToolsVersion “21.1.2” defaultConfig { applicationId “com.example.calculator” minSdkVersion 21 targetSdkVersion 21 versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } productFlavors { paid { applicationId “com.example.paid” resValue “string”, “app_name”, […]

Android – 如何创建活动的多个实例?

我想知道是否可以在Android中创建单个Activity的多个实例? 我目前通过使用以下代码启动我自己的inCall屏幕进行Voip测试: public void initInCallScreen(String pName, String phoneNumber, int contactID, boolean callDirection, int lineID){ //starts in callScreen dialog final Intent myIntent = new Intent(context, CallDialogActivity.class); myIntent.putExtra(“NAME”, pName); myIntent.putExtra(“NUMBER”, phoneNumber); myIntent.putExtra(“ID”, contactID); myIntent.putExtra(“CALLTYPE”, callDirection); //True = Incoming, False = Outgoing myIntent.putExtra(“LINEID”, lineID); myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(myIntent); 这允许我启动活动正常。 但是,当我调用它一秒钟时,它只返回已创建的Activity,而不是创建一个新的Activity并将其放在堆栈上。 我希望能够多次创建活动,以便我在堆栈上有两个或三个活动,用户可以在它们之间切换,使用Home,Back按钮等… 这是可能的,如果是的话,我做错了什么?

在Android 4.2上运行时屏幕闪烁。 (活动连续重启)

一些用户报告说,在Android 4.2上运行时我的应用程序屏幕有时会闪烁(仅限!) 我尝试使用我的设备,在放入日志后,活动重新启动并重新启动,每秒约3次。 所以我所做的是在连续重启时跟踪方法调用,结果如下: 似乎问题在于ViewGroup.resetRtlProperties(),因为这是Android 4.2(17)中的新function。 我无法确认这是否是一个错误,但有没有其他人遇到这个或有任何解决方法?

OnPause后触发OnClickListener?

我正在使用的项目使用视图展示器抽象。 这是所有主要类的简化版本。 抽象活动(Wire Presenter实例,带View) public abstract class MvpActivity extends ActionBarActivity { protected Presenter mPresenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mPresenter = getPresenterInstance(); } @Override protected void onResume() { super.onResume(); mPresenter.onResume(this); } @Override protected void onPause() { mPresenter.onPause(); super.onPause(); } } 视图界面 public interface MyView { void redirect(); } 视图实现 public class MyActivity extends […]

主要活动名称必须是.MainActivity吗?

我的应用程序有这个主要活动: <activity android:name=".main.MainActivity" … 它从家庭发射器发射没有任何问题。 但是,当我尝试从Google的手势搜索启动它时,我收到一条手势错误消息,指出该应用没有.MainActivity 。 https://play.google.com/store/apps/details?id=com.google.android.apps.gesturesearch Android应用程序是否需要具有名为.MainActivity的主要活动? 如果不是,它是一个软推荐或约定,还是对手势的错误假设?

ReactNative – 如何从版本0.29开始获取活动实例

我正在编写自己的ViewManager,它需要获取活动实例。 在版本0.29之前它是直接的,但在RN@0.29 突破变化后我找不到办法。 谢谢。

如何在更改活动时更改默认animation?

您好我有一个应用程序,我可以触摸滚动浏览几个屏幕,如Android Homescreen应用程序。 我现在设法在每个页面上添加一个按钮,从此更改为新活动,但滚动从左到右,我希望它在单击按钮时向下滚动,但我无法弄清楚如何做到这一点。 (这可能是一个非常棒的问题 – 抱歉。) 这是我的main.java文件 public class main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button onebutton = (Button)findViewById(R.id.soundsone); onebutton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(main.this, series1button.class); startActivity(i); } }); Button twobutton = (Button)findViewById(R.id.soundstwo); […]

如何开始活动在Android上管理帐户/同步设置?

什么意图开始显示管理帐户/同步设置活动? 查找此类系统活动的意图的最简单方法是什么? 解决方案 :感谢来自@ cant0na的提示,启动管理帐户活动: new Intent(“android.settings.SYNC_SETTINGS”) 如何查找意图请参阅@ cant0na的答案。

无法启动活动资源$ NotFoundException

我已经在Google Play上发布并运行了几个月的应用程序。 今天我收到来自资源未findexception的用户的错误。 我以为我可能已经忘记了一些可绘制的东西。 从错误中我得到了对象ID(我从错误中获取了ID 0x7f030003 )并在R.java中查找它以确定缺少哪个对象。 令我惊讶的是,我从主要活动中find了IDI,所以我确定我没有忘记这一点! 我的应用程序从main开始,所有其他活动/片段都从它调用。 回去的时候,我刚刚完成了开放的活动,然后回到Main。 所以我的代码没有显式调用Main,所以我迷失了导致这种情况的原因。 我无法重现它,只有用户的报告。 我是否在寻找资源时遇到了一些错误? 可能会发生什么? inheritance人是我通过控制台收到的错误 java.lang.RuntimeException: Unable to start activity > ComponentInfo{com.myapp/com.myapp.MainActivity}: > android.content.res.Resources$NotFoundException: Resource ID > #0x7f030003 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) > at > android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) > at android.app.ActivityThread.access$2300(ActivityThread.java:125) at > android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) > at android.os.Handler.dispatchMessage(Handler.java:99) at > android.os.Looper.loop(Looper.java:123) at > android.app.ActivityThread.main(ActivityThread.java:4627) at > java.lang.reflect.Method.invokeNative(Native Method) at > […]

以编程方式在Android中启动“添加Google帐户”活动

我正在开发一个需要Google帐户才能使用某些选项的应用程序。 当没有检测到帐户时,选项被禁用,但我通过popup提示用户添加一个,如果用户单击是,则应该开始活动。 它可以正常显示全局“添加帐户”页面,但我想跳过那个不需要的额外步骤。 毕竟,如果需要Google帐户,为什么要向某人提供添加Exchange帐户的选项,这只是令人困惑。 所以我想默认使用新的Google帐户设置页面。 Java的 try { Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setClassName( “com.google.android.gsf”, “com.google.android.gsf.login.AccountIntroActivity”); //if(getApplicationContext().getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null) { getApplicationContext().startActivity(intent); //} else { //getApplicationContext().startActivity(new Intent(Settings.ACTION_ADD_ACCOUNT).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); //} } catch ( ActivityNotFoundException e) { e.printStackTrace(); } 当我运行它时,抛出以下exception: 05-29 18:24:50.741:W / System.err(10875):android.content.ActivityNotFoundException:无法find显式活动类{com.google.android.gsf / com.google.android.gsf.login.AccountIntroActivity }; 你在AndroidManifest.xml中声明了这个活动吗? AndroidManifest.xml中 问题:我在这里缺少什么? 编辑: 我尝试使用addAccount采用不同的方法,这不起作用,没有任何反应,没有错误,没有新活动开始添加Google帐户。 顺便说一句,原始版本中的整个try catch块都在AlertDialog / listener中。 AccountManager […]